Skip to content

Instantly share code, notes, and snippets.

@cerberodev
Created November 6, 2020 15:05
Show Gist options
  • Save cerberodev/16599fe49a3762f95829809c23a3262a to your computer and use it in GitHub Desktop.
Save cerberodev/16599fe49a3762f95829809c23a3262a to your computer and use it in GitHub Desktop.
golden_test.dart
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:golden_toolkit/golden_toolkit.dart';
import 'package:tdd/main.dart';
void main() {
testGoldens('DeviceBuilder - one scenario - default devices', (tester) async {
final builder = DeviceBuilder()
..addScenario(
widget: MyApp(),
name: 'default page',
);
await tester.pumpDeviceBuilder(builder);
await screenMatchesGolden(tester, 'flutter_demo_page_single_scenario');
});
testGoldens('DeviceBuilder - one scenario - override devices',
(tester) async {
final builder = DeviceBuilder()
..overrideDevicesForAllScenarios(devices: [
Device.phone,
Device.iphone11,
Device.tabletPortrait,
Device.tabletLandscape,
])
..addScenario(
widget: MyApp(),
name: 'default page',
);
await tester.pumpDeviceBuilder(builder);
await screenMatchesGolden(
tester, 'flutter_demo_page_single_scenario_more_devices');
});
testGoldens('DeviceBuilder - multiple scenarios - with onCreate',
(tester) async {
final builder = DeviceBuilder()
..overrideDevicesForAllScenarios(devices: [
Device.phone,
Device.iphone11,
Device.tabletPortrait,
Device.tabletLandscape,
])
..addScenario(
widget: MyApp(),
name: 'default page',
)
..addScenario(
widget: MyApp(),
name: 'tap once',
onCreate: (scenarioWidgetKey) async {
final finder = find.descendant(
of: find.byKey(scenarioWidgetKey),
matching: find.byIcon(Icons.add),
);
expect(finder, findsOneWidget);
await tester.tap(finder);
},
)
..addScenario(
widget: MyApp(),
name: 'tap five times',
onCreate: (scenarioWidgetKey) async {
final finder = find.descendant(
of: find.byKey(scenarioWidgetKey),
matching: find.byIcon(Icons.add),
);
expect(finder, findsOneWidget);
await tester.tap(finder);
await tester.tap(finder);
await tester.tap(finder);
await tester.tap(finder);
await tester.tap(finder);
},
);
await tester.pumpDeviceBuilder(builder);
await screenMatchesGolden(tester, 'flutter_demo_page_multiple_scenarios');
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment