Skip to content

Instantly share code, notes, and snippets.

@fredgrott
Created February 13, 2021 18:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fredgrott/9b2ec91a72a63d6624c5f8729c740158 to your computer and use it in GitHub Desktop.
Save fredgrott/9b2ec91a72a63d6624c5f8729c740158 to your computer and use it in GitHub Desktop.
my home page test
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:golden_toolkit/golden_toolkit.dart';
import 'package:karma/main.dart';
// ignore: long-method
void main() {
testGoldens('DeviceBuilder - one scenario - default devices', (tester) async {
final builder = DeviceBuilder()
..addScenario(
widget: const MyHomePage(),
name: 'default page',
);
await tester.pumpDeviceBuilder(builder);
await screenMatchesGolden(tester, 'my_home_page_single_scenario');
});
testGoldens('DeviceBuilder - one scenario - override devices',
// ignore: prefer-trailing-comma
(tester) async {
final builder = DeviceBuilder()
..overrideDevicesForAllScenarios(devices: [
Device.phone,
Device.iphone11,
Device.tabletPortrait,
Device.tabletLandscape,
])
..addScenario(
widget: const MyHomePage(),
name: 'default page',
);
await tester.pumpDeviceBuilder(builder);
await screenMatchesGolden(
// ignore: prefer-trailing-comma
tester, "my_home_page_single_scenario_more_devices");
});
testGoldens('DeviceBuilder - multiple scenarios - with onCreate',
// ignore: prefer-trailing-comma
(tester) async {
final builder = DeviceBuilder()
// ignore: prefer-trailing-comma
..overrideDevicesForAllScenarios(devices: [
Device.phone,
Device.iphone11,
Device.tabletPortrait,
Device.tabletLandscape,
])
..addScenario(
widget: const MyHomePage(),
name: 'default page',
)
// ignore: prefer-trailing-comma
..addScenario(
widget: const MyHomePage(),
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: const MyHomePage(),
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);
// ignore: prefer-trailing-comma
await screenMatchesGolden(tester, 'my_home_page_multiple_scenarios');
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment