@@ -23,20 +23,30 @@ import 'package:provider/provider.dart';
2323
2424import 'routing_test.mocks.dart' ;
2525
26- class FakeQueryResults extends TryQueryResults {
27- FakeQueryResults ({
28- super .cl = 0 ,
29- super .patchset = 0 ,
30- required super .filter,
31- super .resultsService,
32- });
26+ mixin FakeCreateResultsStreamMixin on QueryResultsBase {
27+ bool createResultsStreamCalled = false ;
3328
3429 @override
3530 Stream <Iterable <(ChangeInResult , Result )>> createResultsStream () async * {
31+ createResultsStreamCalled = true ;
3632 yield [];
3733 }
3834}
3935
36+ class FakeQueryResults extends QueryResults with FakeCreateResultsStreamMixin {
37+ FakeQueryResults (super .filter);
38+ }
39+
40+ class FakeTryQueryResults extends TryQueryResults
41+ with FakeCreateResultsStreamMixin {
42+ FakeTryQueryResults ({
43+ required super .cl,
44+ required super .patchset,
45+ required super .filter,
46+ super .resultsService,
47+ });
48+ }
49+
4050@GenerateNiceMocks ([
4151 MockSpec <AuthService >(),
4252 MockSpec <http.Client >(),
@@ -45,7 +55,8 @@ class FakeQueryResults extends TryQueryResults {
4555void main () {
4656 late MockAuthService mockAuthService;
4757 late GoRouter router;
48- late TryQueryResults queryResults;
58+ late FakeQueryResults queryResults;
59+ late FakeTryQueryResults tryQueryResults;
4960 late MockResultsService mockResultsService;
5061
5162 setUp (() {
@@ -55,13 +66,10 @@ void main() {
5566 (_) async => Review (id: '123' , subject: 'Test Subject' , patchsets: []),
5667 );
5768 router = createRouter (
58- queryResultsProvider: (filter) => queryResults = FakeQueryResults (
59- filter: filter,
60- resultsService: mockResultsService,
61- ),
69+ queryResultsProvider: (filter) => queryResults = FakeQueryResults (filter),
6270 tryQueryResultsProvider:
6371 ({required cl, required patchset, required filter}) =>
64- queryResults = FakeQueryResults (
72+ tryQueryResults = FakeTryQueryResults (
6573 cl: cl,
6674 patchset: patchset,
6775 filter: filter,
@@ -92,6 +100,7 @@ void main() {
92100 final tabBar = tester.widget <TabBar >(find.byType (TabBar ));
93101 expect (tabBar.controller? .index, equals (0 ));
94102 expect (find.byType (Instructions ), findsNothing);
103+ expect (queryResults.createResultsStreamCalled, isTrue);
95104 });
96105
97106 testWidgets ('Routing works for flaky parameter' , (WidgetTester tester) async {
@@ -104,6 +113,7 @@ void main() {
104113 expect (resultsScreen.filter.terms, isEmpty);
105114 final tabBar = tester.widget <TabBar >(find.byType (TabBar ));
106115 expect (tabBar.controller? .index, equals (1 ));
116+ expect (queryResults.createResultsStreamCalled, isFalse);
107117 });
108118
109119 testWidgets ('Routing works for showAll parameter' , (
@@ -118,6 +128,7 @@ void main() {
118128 expect (resultsScreen.filter.terms, isEmpty);
119129 final tabBar = tester.widget <TabBar >(find.byType (TabBar ));
120130 expect (tabBar.controller? .index, equals (2 ));
131+ expect (queryResults.createResultsStreamCalled, isFalse);
121132 });
122133
123134 testWidgets ('Routing works for combined parameters' , (
@@ -132,6 +143,7 @@ void main() {
132143 expect (resultsScreen.filter.terms, equals (['test-filter' ]));
133144 final tabBar = tester.widget <TabBar >(find.byType (TabBar ));
134145 expect (tabBar.controller? .index, equals (2 ));
146+ expect (queryResults.createResultsStreamCalled, isTrue);
135147 });
136148
137149 testWidgets ('Routing works for default route' , (WidgetTester tester) async {
@@ -145,6 +157,7 @@ void main() {
145157 final tabBar = tester.widget <TabBar >(find.byType (TabBar ));
146158 expect (tabBar.controller? .index, equals (0 ));
147159 expect (find.byType (Instructions ), findsOneWidget);
160+ expect (queryResults.createResultsStreamCalled, isFalse);
148161 });
149162
150163 testWidgets ('Routing works for cl route' , (WidgetTester tester) async {
@@ -155,9 +168,10 @@ void main() {
155168
156169 final tabBar = tester.widget <TabBar >(find.byType (TabBar ));
157170 expect (tabBar.controller? .index, equals (0 ));
158- expect (queryResults.cl, equals (1234 ));
159- expect (queryResults.patchset, equals (5 ));
160- expect (queryResults.filter.terms, isEmpty);
171+ expect (tryQueryResults.cl, equals (1234 ));
172+ expect (tryQueryResults.patchset, equals (5 ));
173+ expect (tryQueryResults.filter.terms, isEmpty);
174+ expect (tryQueryResults.createResultsStreamCalled, isTrue);
161175 });
162176
163177 testWidgets ('Routing works for cl route with filter' , (
@@ -170,9 +184,10 @@ void main() {
170184
171185 final tabBar = tester.widget <TabBar >(find.byType (TabBar ));
172186 expect (tabBar.controller? .index, equals (0 ));
173- expect (queryResults.cl, equals (1234 ));
174- expect (queryResults.patchset, equals (5 ));
175- expect (queryResults.filter.terms, equals (['my-filter' ]));
187+ expect (tryQueryResults.cl, equals (1234 ));
188+ expect (tryQueryResults.patchset, equals (5 ));
189+ expect (tryQueryResults.filter.terms, equals (['my-filter' ]));
190+ expect (tryQueryResults.createResultsStreamCalled, isTrue);
176191 });
177192
178193 testWidgets ('Routing works for cl route with flaky' , (
@@ -185,9 +200,10 @@ void main() {
185200
186201 final tabBar = tester.widget <TabBar >(find.byType (TabBar ));
187202 expect (tabBar.controller? .index, equals (1 ));
188- expect (queryResults.cl, equals (1234 ));
189- expect (queryResults.patchset, equals (5 ));
190- expect (queryResults.filter.terms, isEmpty);
203+ expect (tryQueryResults.cl, equals (1234 ));
204+ expect (tryQueryResults.patchset, equals (5 ));
205+ expect (tryQueryResults.filter.terms, isEmpty);
206+ expect (tryQueryResults.createResultsStreamCalled, isTrue);
191207 });
192208
193209 testWidgets ('Routing works for cl route with showAll' , (
@@ -200,8 +216,9 @@ void main() {
200216
201217 final tabBar = tester.widget <TabBar >(find.byType (TabBar ));
202218 expect (tabBar.controller? .index, equals (2 ));
203- expect (queryResults.cl, equals (1234 ));
204- expect (queryResults.patchset, equals (5 ));
205- expect (queryResults.filter.terms, isEmpty);
219+ expect (tryQueryResults.cl, equals (1234 ));
220+ expect (tryQueryResults.patchset, equals (5 ));
221+ expect (tryQueryResults.filter.terms, isEmpty);
222+ expect (tryQueryResults.createResultsStreamCalled, isTrue);
206223 });
207224}
0 commit comments