[go_router] Export inherited_go_router.dart file (#1145)
diff --git a/packages/go_router/CHANGELOG.md b/packages/go_router/CHANGELOG.md
index 2dd8a6b..b7e3c52 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 b331c61..403cca9 100644
--- a/packages/go_router/lib/go_router.dart
+++ b/packages/go_router/lib/go_router.dart
@@ -15,6 +15,7 @@
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 b333bfa..038fa10 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 cadf955..216b93c 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/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 @@
expect(properties.properties.first, isA<DiagnosticsProperty<GoRouter>>());
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 @@
@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: <GoRoute>[]);
+
+ late String latestPushedName;
+
+ @override
+ void pushNamed(String name,
+ {Map<String, String> params = const <String, String>{},
+ Map<String, String> queryParams = const <String, String>{},
+ Object? extra}) {
+ latestPushedName = name;
+ }
+}