From 5600590b500ea5be8fea94642439e9c3bc008767 Mon Sep 17 00:00:00 2001 From: Ryoichi Izumita Date: Sat, 26 Mar 2022 07:50:09 +0900 Subject: [PATCH] [go_router] Export inherited_go_router.dart file (#1145) --- packages/go_router/CHANGELOG.md | 4 +++ packages/go_router/lib/go_router.dart | 1 + packages/go_router/pubspec.yaml | 2 +- .../test/inherited_go_router_test.dart | 35 ++++++++++++++++++- 4 files changed, 40 insertions(+), 2 deletions(-) diff --git a/packages/go_router/CHANGELOG.md b/packages/go_router/CHANGELOG.md index 2dd8a6bdd643..b7e3c52d1ae9 100644 --- a/packages/go_router/CHANGELOG.md +++ b/packages/go_router/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.0.6 + +- Exports inherited_go_router.dart file. + ## 3.0.5 - Add `dispatchNotification` method to `DummyBuildContext` in tests. (This diff --git a/packages/go_router/lib/go_router.dart b/packages/go_router/lib/go_router.dart index b331c61d2cbe..403cca9d36b7 100644 --- a/packages/go_router/lib/go_router.dart +++ b/packages/go_router/lib/go_router.dart @@ -15,6 +15,7 @@ export 'src/go_route.dart'; export 'src/go_router.dart'; export 'src/go_router_refresh_stream.dart'; export 'src/go_router_state.dart'; +export 'src/inherited_go_router.dart'; export 'src/typedefs.dart' show GoRouterPageBuilder, GoRouterRedirect; export 'src/url_path_strategy.dart'; diff --git a/packages/go_router/pubspec.yaml b/packages/go_router/pubspec.yaml index b333bfa8bdc1..038fa1078b39 100644 --- a/packages/go_router/pubspec.yaml +++ b/packages/go_router/pubspec.yaml @@ -1,7 +1,7 @@ name: go_router description: A declarative router for Flutter based on Navigation 2 supporting deep linking, data-driven routes and more -version: 3.0.5 +version: 3.0.6 repository: https://github.com/flutter/packages/tree/main/packages/go_router issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+go_router%22 diff --git a/packages/go_router/test/inherited_go_router_test.dart b/packages/go_router/test/inherited_go_router_test.dart index cadf9553533f..216b93cfe327 100644 --- a/packages/go_router/test/inherited_go_router_test.dart +++ b/packages/go_router/test/inherited_go_router_test.dart @@ -6,7 +6,6 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:go_router/go_router.dart'; -import 'package:go_router/src/inherited_go_router.dart'; void main() { group('updateShouldNotify', () { @@ -71,6 +70,15 @@ void main() { expect(properties.properties.first, isA>()); expect(properties.properties.first.value, goRouter); }); + + testWidgets('mediates Widget\'s access to GoRouter.', + (WidgetTester tester) async { + final MockGoRouter router = MockGoRouter(); + await tester.pumpWidget(MaterialApp( + home: InheritedGoRouter(goRouter: router, child: const _MyWidget()))); + await tester.tap(find.text('My Page')); + expect(router.latestPushedName, 'my_page'); + }); } bool setupInheritedGoRouterChange({ @@ -103,3 +111,28 @@ class Page2 extends StatelessWidget { @override Widget build(BuildContext context) => Container(); } + +class _MyWidget extends StatelessWidget { + const _MyWidget({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return ElevatedButton( + onPressed: () => context.pushNamed('my_page'), + child: const Text('My Page')); + } +} + +class MockGoRouter extends GoRouter { + MockGoRouter() : super(routes: []); + + late String latestPushedName; + + @override + void pushNamed(String name, + {Map params = const {}, + Map queryParams = const {}, + Object? extra}) { + latestPushedName = name; + } +}