Skip to content

Commit cc45115

Browse files
sm-sayedignprice
authored andcommitted
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 8c50537 commit cc45115

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
@@ -6,6 +6,7 @@ import 'package:http/http.dart' as http;
66
import 'package:flutter/material.dart';
77
import 'package:flutter_test/flutter_test.dart';
88
import 'package:image_picker/image_picker.dart';
9+
import 'package:zulip/api/model/model.dart';
910
import 'package:zulip/api/route/messages.dart';
1011
import 'package:zulip/model/localizations.dart';
1112
import 'package:zulip/model/narrow.dart';
@@ -16,6 +17,7 @@ import '../api/fake_api.dart';
1617
import '../example_data.dart' as eg;
1718
import '../flutter_checks.dart';
1819
import '../model/binding.dart';
20+
import '../model/test_store.dart';
1921
import '../stdlib_checks.dart';
2022
import 'dialog_checks.dart';
2123
import 'test_app.dart';
@@ -26,11 +28,14 @@ void main() {
2628
late PerAccountStore store;
2729
late FakeApiConnection connection;
2830

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

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

3641
final controllerKey = GlobalKey<ComposeBoxController>();
@@ -169,14 +174,14 @@ void main() {
169174

170175
testWidgets('_StreamComposeBox', (tester) async {
171176
final key = await prepareComposeBox(tester,
172-
ChannelNarrow(eg.stream().streamId));
177+
narrow: ChannelNarrow(eg.stream().streamId));
173178
checkComposeBoxTextFields(tester, controllerKey: key,
174179
expectTopicTextField: true);
175180
});
176181

177182
testWidgets('_FixedDestinationComposeBox', (tester) async {
178183
final key = await prepareComposeBox(tester,
179-
TopicNarrow.ofMessage(eg.streamMessage()));
184+
narrow: TopicNarrow.ofMessage(eg.streamMessage()));
180185
checkComposeBoxTextFields(tester, controllerKey: key,
181186
expectTopicTextField: false);
182187
});
@@ -187,7 +192,7 @@ void main() {
187192
required void Function(int messageId) prepareResponse,
188193
}) async {
189194
final zulipLocalizations = GlobalLocalizations.zulipLocalizations;
190-
await prepareComposeBox(tester, const TopicNarrow(123, 'some topic'));
195+
await prepareComposeBox(tester, narrow: const TopicNarrow(123, 'some topic'));
191196

192197
final contentInputFinder = find.byWidgetPredicate(
193198
(widget) => widget is TextField && widget.controller is ComposeContentController);
@@ -251,7 +256,7 @@ void main() {
251256

252257
group('attach from media library', () {
253258
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));
255260
final composeBoxController = controllerKey.currentState!;
256261

257262
// (When we check that the send button looks disabled, it should be because
@@ -307,7 +312,7 @@ void main() {
307312

308313
group('attach from camera', () {
309314
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));
311316
final composeBoxController = controllerKey.currentState!;
312317

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

0 commit comments

Comments
 (0)