Skip to content

Commit 95e69e4

Browse files
Cleaned up some code, added a logger, and got rid of print statements.
1 parent 77dd014 commit 95e69e4

16 files changed

+284
-167
lines changed

README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,40 @@
11
# Flutter Test Goldens
22
A toolkit for writing golden tests.
3+
4+
## Getting Started
5+
The following shows an example of how to define a golden test that captures
6+
screenshots over time, placing all of them in a single scene file.
7+
8+
```dart
9+
testGoldenSceneOnMac("elevated button interactions", (tester) async {
10+
final goldenKey = GlobalKey();
11+
12+
await FilmStrip(tester)
13+
// Setup the widget tree.
14+
.setupWithPump(() {
15+
return FlutterWidgetScaffold(
16+
goldenKey: goldenKey,
17+
child: ElevatedButton(
18+
onPressed: () {},
19+
child: Text("Hello"),
20+
),
21+
);
22+
})
23+
// Take a photo.
24+
.takePhoto(find.byKey(goldenKey), "idle")
25+
// Adjust the existing widget tree by hovering over the ElevatedButton.
26+
.hoverOver(find.byType(ElevatedButton))
27+
// Take a photo.
28+
.takePhoto(find.byKey(goldenKey), "hover")
29+
// Adjust the existing widget tree by pressing down at the current offset.
30+
.pressHover()
31+
// Take a photo.
32+
.takePhoto(find.byKey(goldenKey), "pressed")
33+
// Either stitch the photos into a single scene file, or compare them against
34+
// an existing scene file.
35+
.renderOrCompareGolden(
36+
goldenName: "button_elevated_interactions",
37+
layout: FilmStripLayout.row,
38+
);
39+
});
40+
```

lib/flutter_test_goldens.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
1+
export 'src/flutter/flutter_test_extensions.dart';
12
export 'src/fonts/fonts.dart';
23
export 'src/galleries/film_strip.dart';
34
export 'src/galleries/gallery.dart';
45
export 'src/goldens/golden_camera.dart';
6+
export 'src/goldens/golden_collections.dart';
7+
export 'src/goldens/golden_comparisons.dart';
8+
export 'src/goldens/golden_rendering.dart';
9+
export 'src/goldens/golden_scenes.dart';
10+
export 'src/qr_codes/qr_code_image_scanning.dart';
11+
export 'src/logging.dart';
512
export 'src/test_runners.dart';

lib/src/flutter/flutter_test_extensions.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'package:flutter/gestures.dart';
22
import 'package:flutter/widgets.dart';
33
import 'package:flutter_test/flutter_test.dart';
4+
import 'package:flutter_test_goldens/flutter_test_goldens.dart';
45

56
extension FlutterTestGoldens on WidgetTester {
67
/// Pumps a [widgetTree] and then adjusts the test window size to exactly match the
@@ -14,7 +15,7 @@ extension FlutterTestGoldens on WidgetTester {
1415
/// of the test window is changed to match [widgetTree]. Finally, [widgetTree] is pumped
1516
/// again with the final window size.
1617
Future<void> pumpWidgetAndAdjustWindow(Widget widgetTree) async {
17-
print("Pumping a widget tree and adjusting window size.");
18+
FtgLog.pipeline.fine("Pumping a widget tree and adjusting window size.");
1819
final contentKey = GlobalKey();
1920

2021
await pumpWidget(
@@ -36,7 +37,7 @@ extension FlutterTestGoldens on WidgetTester {
3637

3738
// Look up the natural content dimensions.
3839
final contentSize = contentKey.currentContext!.size!;
39-
print("Content size: $contentSize");
40+
FtgLog.pipeline.fine("Final content and window size: $contentSize");
4041

4142
// Change test window to exactly fit widget tree.
4243
view.physicalSize = contentSize;

0 commit comments

Comments
 (0)