@@ -2,13 +2,10 @@ import 'package:checks/checks.dart';
2
2
import 'package:flutter/material.dart' ;
3
3
import 'package:flutter_gen/gen_l10n/zulip_localizations.dart' ;
4
4
import 'package:flutter_test/flutter_test.dart' ;
5
- import 'package:zulip/api/route/messages.dart' ;
6
5
import 'package:zulip/model/narrow.dart' ;
7
6
import 'package:zulip/widgets/compose_box.dart' ;
8
- import 'package:zulip/widgets/message_list.dart' ;
9
7
import 'package:zulip/widgets/store.dart' ;
10
8
11
- import '../api/fake_api.dart' ;
12
9
import '../example_data.dart' as eg;
13
10
import '../flutter_checks.dart' ;
14
11
import '../model/binding.dart' ;
@@ -119,42 +116,26 @@ void main() {
119
116
});
120
117
121
118
group ('ComposeBox textCapitalization' , () {
122
- final message = eg. streamMessage () ;
119
+ late GlobalKey < ComposeBoxController > controllerKey ;
123
120
124
121
Future <void > prepareComposeBox (WidgetTester tester, Narrow narrow) async {
125
122
addTearDown (testBinding.reset);
126
- await testBinding.globalStore.add (eg.selfAccount, eg.initialSnapshot (
127
- streams: [eg.stream (streamId: message.streamId)],
128
- ));
129
- final store = await testBinding.globalStore.perAccount (eg.selfAccount.id);
130
- final connection = store.connection as FakeApiConnection ;
131
-
132
- // prepare message list data
133
- connection.prepare (json: GetMessagesResult (
134
- anchor: message.id,
135
- foundNewest: true ,
136
- foundOldest: true ,
137
- foundAnchor: true ,
138
- historyLimited: false ,
139
- messages: [message],
140
- ).toJson ());
123
+ await testBinding.globalStore.add (eg.selfAccount, eg.initialSnapshot ());
141
124
125
+ controllerKey = GlobalKey ();
142
126
await tester.pumpWidget (
143
127
MaterialApp (
144
128
localizationsDelegates: ZulipLocalizations .localizationsDelegates,
145
129
supportedLocales: ZulipLocalizations .supportedLocales,
146
130
home: GlobalStoreWidget (
147
131
child: PerAccountStoreWidget (
148
132
accountId: eg.selfAccount.id,
149
- child: MessageListPage (narrow: narrow)))));
150
-
151
- // global store, per-account store, and message list get loaded
133
+ child: ComposeBox (controllerKey: controllerKey, narrow: narrow)))));
152
134
await tester.pumpAndSettle ();
153
135
}
154
136
155
137
void checkComposeBoxTextFields (WidgetTester tester, {required bool expectTopicTextField}) {
156
- final composeBoxController = tester.widget <ComposeBox >(find.byType (ComposeBox ))
157
- .controllerKey! .currentState! ;
138
+ final composeBoxController = controllerKey.currentState! ;
158
139
159
140
final topicTextField = tester.widgetList <TextField >(find.byWidgetPredicate (
160
141
(widget) => widget is TextField
@@ -174,12 +155,12 @@ void main() {
174
155
}
175
156
176
157
testWidgets ('_StreamComposeBox' , (tester) async {
177
- await prepareComposeBox (tester, StreamNarrow (message .streamId));
158
+ await prepareComposeBox (tester, StreamNarrow (eg. stream () .streamId));
178
159
checkComposeBoxTextFields (tester, expectTopicTextField: true );
179
160
});
180
161
181
162
testWidgets ('_FixedDestinationComposeBox' , (tester) async {
182
- await prepareComposeBox (tester, TopicNarrow .ofMessage (message ));
163
+ await prepareComposeBox (tester, TopicNarrow .ofMessage (eg. streamMessage () ));
183
164
checkComposeBoxTextFields (tester, expectTopicTextField: false );
184
165
});
185
166
});
0 commit comments