Fix Router Config Issues #4300 (go_router_builder/example) (#4369)

This PR is an extension of the previous PR #4300 that I submitted. The previous PR, being based on the main branch, was closed and the contents were copied to a new branch in order to make further contributions.😅

In the previous PR, an assertion error was fixed by adding `routeInformationProvider` to `MaterialApp.router`. After a series of code reviews, we updated to use routerConfig and added some test codes.

All the contents have been transferred to the current `bugfix/RouterConfig` branch.

---
*Replace this paragraph with a description of what this PR is changing or adding, and why. Consider including before/after screenshots.*

*List which issues are fixed by this PR. You must list at least one issue.*

*If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].*
This commit is contained in:
Seolin
2023-07-14 00:57:44 +09:00
committed by GitHub
parent a4907b5b4c
commit 5e63ef1326
4 changed files with 23 additions and 8 deletions

View File

@ -550,9 +550,7 @@ class AllTypesApp extends StatelessWidget {
@override
Widget build(BuildContext context) => MaterialApp.router(
routeInformationParser: _router.routeInformationParser,
routerDelegate: _router.routerDelegate,
routeInformationProvider: _router.routeInformationProvider,
routerConfig: _router,
);
late final GoRouter _router = GoRouter(

View File

@ -26,9 +26,7 @@ class App extends StatelessWidget {
Widget build(BuildContext context) => ChangeNotifierProvider<LoginInfo>.value(
value: loginInfo,
child: MaterialApp.router(
routeInformationParser: _router.routeInformationParser,
routerDelegate: _router.routerDelegate,
routeInformationProvider: _router.routeInformationProvider,
routerConfig: _router,
title: title,
debugShowCheckedModeBanner: false,
),

View File

@ -18,8 +18,7 @@ class App extends StatelessWidget {
@override
Widget build(BuildContext context) => MaterialApp.router(
routeInformationParser: _router.routeInformationParser,
routerDelegate: _router.routerDelegate,
routerConfig: _router,
title: _appTitle,
);

View File

@ -0,0 +1,20 @@
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:go_router_builder_example/shared/data.dart';
import 'package:go_router_builder_example/simple_example.dart';
void main() {
testWidgets('App starts on HomeScreen and displays families',
(WidgetTester tester) async {
await tester.pumpWidget(App());
expect(find.byType(HomeScreen), findsOneWidget);
expect(find.byType(ListTile), findsNWidgets(familyData.length));
for (final Family family in familyData) {
expect(find.text(family.name), findsOneWidget);
}
});
}