Unverified Commit 7caef218 authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

refactorings to testbed.run and testbed.test (#44488)

parent 9acf1054
...@@ -16,20 +16,14 @@ import '../../src/common.dart'; ...@@ -16,20 +16,14 @@ import '../../src/common.dart';
import '../../src/testbed.dart'; import '../../src/testbed.dart';
void main() { void main() {
Testbed testbed;
MockBuildSystem mockBuildSystem;
Cache.disableLocking(); Cache.disableLocking();
final Testbed testbed = Testbed(overrides: <Type, Generator>{
setUp(() { BuildSystem: () => MockBuildSystem(),
mockBuildSystem = MockBuildSystem();
testbed = Testbed(overrides: <Type, Generator>{
BuildSystem: () => mockBuildSystem,
Cache: () => FakeCache(), Cache: () => FakeCache(),
}); });
});
test('Can run a build', () => testbed.run(() async { testbed.test('Can run a build', () async {
when(mockBuildSystem.build(any, any, buildSystemConfig: anyNamed('buildSystemConfig'))) when(buildSystem.build(any, any, buildSystemConfig: anyNamed('buildSystemConfig')))
.thenAnswer((Invocation invocation) async { .thenAnswer((Invocation invocation) async {
return BuildResult(success: true); return BuildResult(success: true);
}); });
...@@ -38,30 +32,30 @@ void main() { ...@@ -38,30 +32,30 @@ void main() {
final BufferLogger bufferLogger = logger; final BufferLogger bufferLogger = logger;
expect(bufferLogger.traceText, contains('build succeeded.')); expect(bufferLogger.traceText, contains('build succeeded.'));
})); });
test('Throws ToolExit if not provided with output', () => testbed.run(() async { testbed.test('Throws ToolExit if not provided with output', () async {
when(mockBuildSystem.build(any, any, buildSystemConfig: anyNamed('buildSystemConfig'))) when(buildSystem.build(any, any, buildSystemConfig: anyNamed('buildSystemConfig')))
.thenAnswer((Invocation invocation) async { .thenAnswer((Invocation invocation) async {
return BuildResult(success: true); return BuildResult(success: true);
}); });
final CommandRunner<void> commandRunner = createTestCommandRunner(AssembleCommand()); final CommandRunner<void> commandRunner = createTestCommandRunner(AssembleCommand());
expect(commandRunner.run(<String>['assemble', 'debug_macos_bundle_flutter_assets']), throwsA(isInstanceOf<ToolExit>())); expect(commandRunner.run(<String>['assemble', 'debug_macos_bundle_flutter_assets']), throwsA(isInstanceOf<ToolExit>()));
})); });
test('Throws ToolExit if called with non-existent rule', () => testbed.run(() async { testbed.test('Throws ToolExit if called with non-existent rule', () async {
when(mockBuildSystem.build(any, any, buildSystemConfig: anyNamed('buildSystemConfig'))) when(buildSystem.build(any, any, buildSystemConfig: anyNamed('buildSystemConfig')))
.thenAnswer((Invocation invocation) async { .thenAnswer((Invocation invocation) async {
return BuildResult(success: true); return BuildResult(success: true);
}); });
final CommandRunner<void> commandRunner = createTestCommandRunner(AssembleCommand()); final CommandRunner<void> commandRunner = createTestCommandRunner(AssembleCommand());
expect(commandRunner.run(<String>['assemble', '-o Output', 'undefined']), throwsA(isInstanceOf<ToolExit>())); expect(commandRunner.run(<String>['assemble', '-o Output', 'undefined']), throwsA(isInstanceOf<ToolExit>()));
})); });
test('Only writes input and output files when the values change', () => testbed.run(() async { testbed.test('Only writes input and output files when the values change', () async {
when(mockBuildSystem.build(any, any, buildSystemConfig: anyNamed('buildSystemConfig'))) when(buildSystem.build(any, any, buildSystemConfig: anyNamed('buildSystemConfig')))
.thenAnswer((Invocation invocation) async { .thenAnswer((Invocation invocation) async {
return BuildResult( return BuildResult(
success: true, success: true,
...@@ -86,8 +80,7 @@ void main() { ...@@ -86,8 +80,7 @@ void main() {
expect(inputs.lastModifiedSync(), theDistantPast); expect(inputs.lastModifiedSync(), theDistantPast);
expect(outputs.lastModifiedSync(), theDistantPast); expect(outputs.lastModifiedSync(), theDistantPast);
when(buildSystem.build(any, any, buildSystemConfig: anyNamed('buildSystemConfig')))
when(mockBuildSystem.build(any, any, buildSystemConfig: anyNamed('buildSystemConfig')))
.thenAnswer((Invocation invocation) async { .thenAnswer((Invocation invocation) async {
return BuildResult( return BuildResult(
success: true, success: true,
...@@ -99,7 +92,7 @@ void main() { ...@@ -99,7 +92,7 @@ void main() {
expect(inputs.readAsStringSync(), contains('foo')); expect(inputs.readAsStringSync(), contains('foo'));
expect(inputs.readAsStringSync(), contains('fizz')); expect(inputs.readAsStringSync(), contains('fizz'));
expect(inputs.lastModifiedSync(), isNot(theDistantPast)); expect(inputs.lastModifiedSync(), isNot(theDistantPast));
})); });
} }
class MockBuildSystem extends Mock implements BuildSystem {} class MockBuildSystem extends Mock implements BuildSystem {}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment