From 5889dd7ba37241765d936ab7a226a841fd395c84 Mon Sep 17 00:00:00 2001 From: Yegor Jbanov Date: Wed, 7 Sep 2022 10:18:59 -0700 Subject: [PATCH 1/2] [web] skip flaky date picker golden tests --- .../test/cupertino/date_picker_test.dart | 43 ++++++++++++------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/packages/flutter/test/cupertino/date_picker_test.dart b/packages/flutter/test/cupertino/date_picker_test.dart index 5e0326b1cd171..ac1cdd22b7b79 100644 --- a/packages/flutter/test/cupertino/date_picker_test.dart +++ b/packages/flutter/test/cupertino/date_picker_test.dart @@ -19,6 +19,9 @@ import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter_test/flutter_test.dart'; +// TODO(yjbanov): on the web text rendered with perspective produces flaky goldens: https://github.com/flutter/flutter/issues/110785 +const bool doNotSkipPerspectiveTextGoldens = !isBrowser; + // A number of the hit tests below say "warnIfMissed: false". This is because // the way the CupertinoPicker works, the hits don't actually reach the labels, // the scroll view intercepts them. @@ -1194,31 +1197,39 @@ void main() { } await tester.pumpWidget(buildApp(CupertinoDatePickerMode.time)); - await expectLater( - find.byType(CupertinoDatePicker), - matchesGoldenFile('date_picker_test.time.initial.png'), - ); + if (doNotSkipPerspectiveTextGoldens) { + await expectLater( + find.byType(CupertinoDatePicker), + matchesGoldenFile('date_picker_test.time.initial.png'), + ); + } await tester.pumpWidget(buildApp(CupertinoDatePickerMode.date)); - await expectLater( - find.byType(CupertinoDatePicker), - matchesGoldenFile('date_picker_test.date.initial.png'), - ); + if (doNotSkipPerspectiveTextGoldens) { + await expectLater( + find.byType(CupertinoDatePicker), + matchesGoldenFile('date_picker_test.date.initial.png'), + ); + } await tester.pumpWidget(buildApp(CupertinoDatePickerMode.dateAndTime)); - await expectLater( - find.byType(CupertinoDatePicker), - matchesGoldenFile('date_picker_test.datetime.initial.png'), - ); + if (doNotSkipPerspectiveTextGoldens) { + await expectLater( + find.byType(CupertinoDatePicker), + matchesGoldenFile('date_picker_test.datetime.initial.png'), + ); + } // Slightly drag the hour component to make the current hour off-center. await tester.drag(find.text('4'), Offset(0, _kRowOffset.dy / 2), warnIfMissed: false); // see top of file await tester.pump(); - await expectLater( - find.byType(CupertinoDatePicker), - matchesGoldenFile('date_picker_test.datetime.drag.png'), - ); + if (doNotSkipPerspectiveTextGoldens) { + await expectLater( + find.byType(CupertinoDatePicker), + matchesGoldenFile('date_picker_test.datetime.drag.png'), + ); + } }); testWidgets('DatePicker displays the date in correct order', (WidgetTester tester) async { From f0a16e6e5e7a1ffc60a2cb6ac5ed4754547d5ab6 Mon Sep 17 00:00:00 2001 From: Yegor Jbanov Date: Wed, 7 Sep 2022 10:36:22 -0700 Subject: [PATCH 2/2] invert the condition --- packages/flutter/test/cupertino/date_picker_test.dart | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/flutter/test/cupertino/date_picker_test.dart b/packages/flutter/test/cupertino/date_picker_test.dart index ac1cdd22b7b79..2df4f4941a83a 100644 --- a/packages/flutter/test/cupertino/date_picker_test.dart +++ b/packages/flutter/test/cupertino/date_picker_test.dart @@ -20,7 +20,7 @@ import 'package:flutter/rendering.dart'; import 'package:flutter_test/flutter_test.dart'; // TODO(yjbanov): on the web text rendered with perspective produces flaky goldens: https://github.com/flutter/flutter/issues/110785 -const bool doNotSkipPerspectiveTextGoldens = !isBrowser; +const bool skipPerspectiveTextGoldens = isBrowser; // A number of the hit tests below say "warnIfMissed: false". This is because // the way the CupertinoPicker works, the hits don't actually reach the labels, @@ -1197,7 +1197,7 @@ void main() { } await tester.pumpWidget(buildApp(CupertinoDatePickerMode.time)); - if (doNotSkipPerspectiveTextGoldens) { + if (!skipPerspectiveTextGoldens) { await expectLater( find.byType(CupertinoDatePicker), matchesGoldenFile('date_picker_test.time.initial.png'), @@ -1205,7 +1205,7 @@ void main() { } await tester.pumpWidget(buildApp(CupertinoDatePickerMode.date)); - if (doNotSkipPerspectiveTextGoldens) { + if (!skipPerspectiveTextGoldens) { await expectLater( find.byType(CupertinoDatePicker), matchesGoldenFile('date_picker_test.date.initial.png'), @@ -1213,7 +1213,7 @@ void main() { } await tester.pumpWidget(buildApp(CupertinoDatePickerMode.dateAndTime)); - if (doNotSkipPerspectiveTextGoldens) { + if (!skipPerspectiveTextGoldens) { await expectLater( find.byType(CupertinoDatePicker), matchesGoldenFile('date_picker_test.datetime.initial.png'), @@ -1224,7 +1224,7 @@ void main() { await tester.drag(find.text('4'), Offset(0, _kRowOffset.dy / 2), warnIfMissed: false); // see top of file await tester.pump(); - if (doNotSkipPerspectiveTextGoldens) { + if (!skipPerspectiveTextGoldens) { await expectLater( find.byType(CupertinoDatePicker), matchesGoldenFile('date_picker_test.datetime.drag.png'),