Skip to content

Commit 4eb6fc3

Browse files
committed
compose_box test [nfc]: Make prepareComposeBox take a list of users
This will become handy in the next commit(s) when testing the compose box in DMs with deactivated users.
1 parent 244da77 commit 4eb6fc3

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

test/widgets/compose_box_test.dart

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import 'package:flutter/material.dart';
77
import 'package:flutter_gen/gen_l10n/zulip_localizations.dart';
88
import 'package:flutter_test/flutter_test.dart';
99
import 'package:image_picker/image_picker.dart';
10+
import 'package:zulip/api/model/model.dart';
1011
import 'package:zulip/api/route/messages.dart';
1112
import 'package:zulip/model/localizations.dart';
1213
import 'package:zulip/model/narrow.dart';
@@ -18,6 +19,7 @@ import '../api/fake_api.dart';
1819
import '../example_data.dart' as eg;
1920
import '../flutter_checks.dart';
2021
import '../model/binding.dart';
22+
import '../model/test_store.dart';
2123
import '../stdlib_checks.dart';
2224
import 'dialog_checks.dart';
2325

@@ -27,11 +29,14 @@ void main() {
2729
late PerAccountStore store;
2830
late FakeApiConnection connection;
2931

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 {
3134
addTearDown(testBinding.reset);
3235
await testBinding.globalStore.add(eg.selfAccount, eg.initialSnapshot());
3336

3437
store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
38+
39+
await store.addUsers([eg.selfUser, ...users]);
3540
connection = store.connection as FakeApiConnection;
3641

3742
final controllerKey = GlobalKey<ComposeBoxController>();
@@ -176,14 +181,14 @@ void main() {
176181

177182
testWidgets('_StreamComposeBox', (tester) async {
178183
final key = await prepareComposeBox(tester,
179-
StreamNarrow(eg.stream().streamId));
184+
narrow: StreamNarrow(eg.stream().streamId));
180185
checkComposeBoxTextFields(tester, controllerKey: key,
181186
expectTopicTextField: true);
182187
});
183188

184189
testWidgets('_FixedDestinationComposeBox', (tester) async {
185190
final key = await prepareComposeBox(tester,
186-
TopicNarrow.ofMessage(eg.streamMessage()));
191+
narrow: TopicNarrow.ofMessage(eg.streamMessage()));
187192
checkComposeBoxTextFields(tester, controllerKey: key,
188193
expectTopicTextField: false);
189194
});
@@ -194,7 +199,7 @@ void main() {
194199
required void Function(int messageId) prepareResponse,
195200
}) async {
196201
final zulipLocalizations = GlobalLocalizations.zulipLocalizations;
197-
await prepareComposeBox(tester, const TopicNarrow(123, 'some topic'));
202+
await prepareComposeBox(tester, narrow: const TopicNarrow(123, 'some topic'));
198203

199204
final contentInputFinder = find.byWidgetPredicate(
200205
(widget) => widget is TextField && widget.controller is ComposeContentController);
@@ -258,7 +263,7 @@ void main() {
258263

259264
group('attach from media library', () {
260265
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));
262267
final composeBoxController = controllerKey.currentState!;
263268

264269
// (When we check that the send button looks disabled, it should be because
@@ -314,7 +319,7 @@ void main() {
314319

315320
group('attach from camera', () {
316321
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));
318323
final composeBoxController = controllerKey.currentState!;
319324

320325
// (When we check that the send button looks disabled, it should be because

0 commit comments

Comments
 (0)