@@ -6,6 +6,7 @@ import 'package:http/http.dart' as http;
6
6
import 'package:flutter/material.dart' ;
7
7
import 'package:flutter_test/flutter_test.dart' ;
8
8
import 'package:image_picker/image_picker.dart' ;
9
+ import 'package:zulip/api/model/model.dart' ;
9
10
import 'package:zulip/api/route/messages.dart' ;
10
11
import 'package:zulip/model/localizations.dart' ;
11
12
import 'package:zulip/model/narrow.dart' ;
@@ -16,6 +17,7 @@ import '../api/fake_api.dart';
16
17
import '../example_data.dart' as eg;
17
18
import '../flutter_checks.dart' ;
18
19
import '../model/binding.dart' ;
20
+ import '../model/test_store.dart' ;
19
21
import '../stdlib_checks.dart' ;
20
22
import 'dialog_checks.dart' ;
21
23
import 'test_app.dart' ;
@@ -26,11 +28,14 @@ void main() {
26
28
late PerAccountStore store;
27
29
late FakeApiConnection connection;
28
30
29
- Future <GlobalKey <ComposeBoxController >> prepareComposeBox (WidgetTester tester, Narrow narrow) async {
31
+ Future <GlobalKey <ComposeBoxController >> prepareComposeBox (WidgetTester tester,
32
+ {required Narrow narrow, List <User > users = const []}) async {
30
33
addTearDown (testBinding.reset);
31
34
await testBinding.globalStore.add (eg.selfAccount, eg.initialSnapshot ());
32
35
33
36
store = await testBinding.globalStore.perAccount (eg.selfAccount.id);
37
+
38
+ await store.addUsers ([eg.selfUser, ...users]);
34
39
connection = store.connection as FakeApiConnection ;
35
40
36
41
final controllerKey = GlobalKey <ComposeBoxController >();
@@ -169,14 +174,14 @@ void main() {
169
174
170
175
testWidgets ('_StreamComposeBox' , (tester) async {
171
176
final key = await prepareComposeBox (tester,
172
- ChannelNarrow (eg.stream ().streamId));
177
+ narrow : ChannelNarrow (eg.stream ().streamId));
173
178
checkComposeBoxTextFields (tester, controllerKey: key,
174
179
expectTopicTextField: true );
175
180
});
176
181
177
182
testWidgets ('_FixedDestinationComposeBox' , (tester) async {
178
183
final key = await prepareComposeBox (tester,
179
- TopicNarrow .ofMessage (eg.streamMessage ()));
184
+ narrow : TopicNarrow .ofMessage (eg.streamMessage ()));
180
185
checkComposeBoxTextFields (tester, controllerKey: key,
181
186
expectTopicTextField: false );
182
187
});
@@ -187,7 +192,7 @@ void main() {
187
192
required void Function (int messageId) prepareResponse,
188
193
}) async {
189
194
final zulipLocalizations = GlobalLocalizations .zulipLocalizations;
190
- await prepareComposeBox (tester, const TopicNarrow (123 , 'some topic' ));
195
+ await prepareComposeBox (tester, narrow : const TopicNarrow (123 , 'some topic' ));
191
196
192
197
final contentInputFinder = find.byWidgetPredicate (
193
198
(widget) => widget is TextField && widget.controller is ComposeContentController );
@@ -251,7 +256,7 @@ void main() {
251
256
252
257
group ('attach from media library' , () {
253
258
testWidgets ('success' , (tester) async {
254
- final controllerKey = await prepareComposeBox (tester, ChannelNarrow (eg.stream ().streamId));
259
+ final controllerKey = await prepareComposeBox (tester, narrow : ChannelNarrow (eg.stream ().streamId));
255
260
final composeBoxController = controllerKey.currentState! ;
256
261
257
262
// (When we check that the send button looks disabled, it should be because
@@ -307,7 +312,7 @@ void main() {
307
312
308
313
group ('attach from camera' , () {
309
314
testWidgets ('success' , (tester) async {
310
- final controllerKey = await prepareComposeBox (tester, ChannelNarrow (eg.stream ().streamId));
315
+ final controllerKey = await prepareComposeBox (tester, narrow : ChannelNarrow (eg.stream ().streamId));
311
316
final composeBoxController = controllerKey.currentState! ;
312
317
313
318
// (When we check that the send button looks disabled, it should be because
0 commit comments