diff --git a/packages/go_router/test/go_router_test.dart b/packages/go_router/test/go_router_test.dart index 47181b5f0e..fb1dbd71d8 100644 --- a/packages/go_router/test/go_router_test.dart +++ b/packages/go_router/test/go_router_test.dart @@ -689,7 +689,8 @@ void main() { 'Handles the Android back button when parentNavigatorKey is set to the root navigator', (WidgetTester tester) async { final List log = []; - TestDefaultBinaryMessengerBinding.instance!.defaultBinaryMessenger + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .setMockMethodCallHandler(SystemChannels.platform, (MethodCall methodCall) async { log.add(methodCall); @@ -731,7 +732,8 @@ void main() { testWidgets("Handles the Android back button when ShellRoute can't pop", (WidgetTester tester) async { final List log = []; - TestDefaultBinaryMessengerBinding.instance!.defaultBinaryMessenger + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .setMockMethodCallHandler(SystemChannels.platform, (MethodCall methodCall) async { log.add(methodCall); @@ -795,7 +797,8 @@ void main() { 'Handles the Android back button when a second Shell has a GoRoute with parentNavigator key', (WidgetTester tester) async { final List log = []; - TestDefaultBinaryMessengerBinding.instance!.defaultBinaryMessenger + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .setMockMethodCallHandler(SystemChannels.platform, (MethodCall methodCall) async { log.add(methodCall); @@ -884,7 +887,8 @@ void main() { group('report correct url', () { final List log = []; setUp(() { - TestDefaultBinaryMessengerBinding.instance!.defaultBinaryMessenger + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .setMockMethodCallHandler(SystemChannels.navigation, (MethodCall methodCall) async { log.add(methodCall); @@ -892,7 +896,8 @@ void main() { }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance!.defaultBinaryMessenger + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .setMockMethodCallHandler(SystemChannels.navigation, null); log.clear(); }); @@ -3271,3 +3276,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value;