@@ -7,6 +7,7 @@ import 'package:flutter/material.dart';
7
7
import 'package:flutter_gen/gen_l10n/zulip_localizations.dart' ;
8
8
import 'package:flutter_test/flutter_test.dart' ;
9
9
import 'package:image_picker/image_picker.dart' ;
10
+ import 'package:zulip/api/model/model.dart' ;
10
11
import 'package:zulip/api/route/messages.dart' ;
11
12
import 'package:zulip/model/localizations.dart' ;
12
13
import 'package:zulip/model/narrow.dart' ;
@@ -18,6 +19,7 @@ import '../api/fake_api.dart';
18
19
import '../example_data.dart' as eg;
19
20
import '../flutter_checks.dart' ;
20
21
import '../model/binding.dart' ;
22
+ import '../model/test_store.dart' ;
21
23
import '../stdlib_checks.dart' ;
22
24
import 'dialog_checks.dart' ;
23
25
@@ -27,11 +29,14 @@ void main() {
27
29
late PerAccountStore store;
28
30
late FakeApiConnection connection;
29
31
30
- Future <GlobalKey <ComposeBoxController >> prepareComposeBox (WidgetTester tester, Narrow narrow) async {
32
+ Future <GlobalKey <ComposeBoxController >> prepareComposeBox (WidgetTester tester,
33
+ {required Narrow narrow, List <User > users = const []}) async {
31
34
addTearDown (testBinding.reset);
32
35
await testBinding.globalStore.add (eg.selfAccount, eg.initialSnapshot ());
33
36
34
37
store = await testBinding.globalStore.perAccount (eg.selfAccount.id);
38
+
39
+ await store.addUsers ([eg.selfUser, ...users]);
35
40
connection = store.connection as FakeApiConnection ;
36
41
37
42
final controllerKey = GlobalKey <ComposeBoxController >();
@@ -176,14 +181,14 @@ void main() {
176
181
177
182
testWidgets ('_StreamComposeBox' , (tester) async {
178
183
final key = await prepareComposeBox (tester,
179
- StreamNarrow (eg.stream ().streamId));
184
+ narrow : StreamNarrow (eg.stream ().streamId));
180
185
checkComposeBoxTextFields (tester, controllerKey: key,
181
186
expectTopicTextField: true );
182
187
});
183
188
184
189
testWidgets ('_FixedDestinationComposeBox' , (tester) async {
185
190
final key = await prepareComposeBox (tester,
186
- TopicNarrow .ofMessage (eg.streamMessage ()));
191
+ narrow : TopicNarrow .ofMessage (eg.streamMessage ()));
187
192
checkComposeBoxTextFields (tester, controllerKey: key,
188
193
expectTopicTextField: false );
189
194
});
@@ -194,7 +199,7 @@ void main() {
194
199
required void Function (int messageId) prepareResponse,
195
200
}) async {
196
201
final zulipLocalizations = GlobalLocalizations .zulipLocalizations;
197
- await prepareComposeBox (tester, const TopicNarrow (123 , 'some topic' ));
202
+ await prepareComposeBox (tester, narrow : const TopicNarrow (123 , 'some topic' ));
198
203
199
204
final contentInputFinder = find.byWidgetPredicate (
200
205
(widget) => widget is TextField && widget.controller is ComposeContentController );
@@ -258,7 +263,7 @@ void main() {
258
263
259
264
group ('attach from media library' , () {
260
265
testWidgets ('success' , (tester) async {
261
- final controllerKey = await prepareComposeBox (tester, StreamNarrow (eg.stream ().streamId));
266
+ final controllerKey = await prepareComposeBox (tester, narrow : StreamNarrow (eg.stream ().streamId));
262
267
final composeBoxController = controllerKey.currentState! ;
263
268
264
269
// (When we check that the send button looks disabled, it should be because
@@ -314,7 +319,7 @@ void main() {
314
319
315
320
group ('attach from camera' , () {
316
321
testWidgets ('success' , (tester) async {
317
- final controllerKey = await prepareComposeBox (tester, StreamNarrow (eg.stream ().streamId));
322
+ final controllerKey = await prepareComposeBox (tester, narrow : StreamNarrow (eg.stream ().streamId));
318
323
final composeBoxController = controllerKey.currentState! ;
319
324
320
325
// (When we check that the send button looks disabled, it should be because
0 commit comments