Skip to content

Commit 4de8c23

Browse files
committed
test [nfc]: Add streams and eg.selfUser to store in several tests
Adding these is necessary for the next commit(s), otherwise these tests will fail.
1 parent 25c088a commit 4de8c23

File tree

4 files changed

+42
-21
lines changed

4 files changed

+42
-21
lines changed

test/widgets/action_sheet_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ Future<void> setupToMessageActionSheet(WidgetTester tester, {
4646

4747
await testBinding.globalStore.add(eg.selfAccount, eg.initialSnapshot());
4848
store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
49-
await store.addUser(eg.user(userId: message.senderId));
49+
await store.addUsers([eg.selfUser, eg.user(userId: message.senderId)]);
5050
if (message is StreamMessage) {
5151
final stream = eg.stream(streamId: message.streamId);
5252
await store.addStream(stream);

test/widgets/autocomplete_test.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,12 @@ Future<Finder> setupToTopicInput(WidgetTester tester, {
7777
addTearDown(testBinding.reset);
7878
await testBinding.globalStore.add(eg.selfAccount, eg.initialSnapshot());
7979
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
80+
await store.addUser(eg.selfUser);
8081
final connection = store.connection as FakeApiConnection;
8182

8283
// prepare message list data
8384
final stream = eg.stream();
85+
await store.addStream(stream);
8486
final message = eg.streamMessage(stream: stream, sender: eg.selfUser);
8587
connection.prepare(json: GetMessagesResult(
8688
anchor: message.id,

test/widgets/compose_box_test.dart

Lines changed: 37 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,22 @@ void main() {
3939
final contentInputFinder = find.byWidgetPredicate(
4040
(widget) => widget is TextField && widget.controller is ComposeContentController);
4141

42-
Future<GlobalKey<ComposeBoxController>> prepareComposeBox(WidgetTester tester,
43-
{required Narrow narrow, List<User> users = const []}) async {
42+
Future<GlobalKey<ComposeBoxController>> prepareComposeBox(WidgetTester tester, {
43+
required Narrow narrow,
44+
List<User> users = const [],
45+
List<ZulipStream> streams = const [],
46+
}) async {
47+
if (narrow case ChannelNarrow(:var streamId) || TopicNarrow(: var streamId)) {
48+
assert(streams.any((stream) => stream.streamId == streamId),
49+
'Add a channel with "streamId" the same as of $narrow.streamId to the store.');
50+
}
4451
addTearDown(testBinding.reset);
4552
await testBinding.globalStore.add(eg.selfAccount, eg.initialSnapshot());
4653

4754
store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
4855

4956
await store.addUsers([eg.selfUser, ...users]);
57+
await store.addStreams(streams);
5058
connection = store.connection as FakeApiConnection;
5159

5260
final controllerKey = GlobalKey<ComposeBoxController>();
@@ -205,22 +213,25 @@ void main() {
205213
}
206214

207215
testWidgets('_StreamComposeBox', (tester) async {
216+
final channel = eg.stream();
208217
final key = await prepareComposeBox(tester,
209-
narrow: ChannelNarrow(eg.stream().streamId));
218+
narrow: ChannelNarrow(channel.streamId), streams: [channel]);
210219
checkComposeBoxTextFields(tester, controllerKey: key,
211220
expectTopicTextField: true);
212221
});
213222

214223
testWidgets('_FixedDestinationComposeBox', (tester) async {
224+
final channel = eg.stream();
215225
final key = await prepareComposeBox(tester,
216-
narrow: TopicNarrow.ofMessage(eg.streamMessage()));
226+
narrow: TopicNarrow(channel.streamId, 'topic'), streams: [channel]);
217227
checkComposeBoxTextFields(tester, controllerKey: key,
218228
expectTopicTextField: false);
219229
});
220230
});
221231

222232
group('ComposeBox typing notices', () {
223-
const narrow = TopicNarrow(123, 'some topic');
233+
final channel = eg.stream();
234+
final narrow = TopicNarrow(channel.streamId, 'some topic');
224235

225236
void checkTypingRequest(TypingOp op, SendableNarrow narrow) =>
226237
checkSetTypingStatusRequests(connection.takeRequests(), [(op, narrow)]);
@@ -232,7 +243,7 @@ void main() {
232243
}
233244

234245
testWidgets('smoke TopicNarrow', (tester) async {
235-
await prepareComposeBox(tester, narrow: narrow);
246+
await prepareComposeBox(tester, narrow: narrow, streams: [channel]);
236247

237248
await checkStartTyping(tester, narrow);
238249

@@ -254,9 +265,9 @@ void main() {
254265
});
255266

256267
testWidgets('smoke ChannelNarrow', (tester) async {
257-
const narrow = ChannelNarrow(123);
268+
final narrow = ChannelNarrow(channel.streamId);
258269
final destinationNarrow = TopicNarrow(narrow.streamId, 'test topic');
259-
await prepareComposeBox(tester, narrow: narrow);
270+
await prepareComposeBox(tester, narrow: narrow, streams: [channel]);
260271
await enterTopic(tester, narrow: narrow, topic: destinationNarrow.topic);
261272

262273
await checkStartTyping(tester, destinationNarrow);
@@ -267,7 +278,7 @@ void main() {
267278
});
268279

269280
testWidgets('clearing text sends a "typing stopped" notice', (tester) async {
270-
await prepareComposeBox(tester, narrow: narrow);
281+
await prepareComposeBox(tester, narrow: narrow, streams: [channel]);
271282

272283
await checkStartTyping(tester, narrow);
273284

@@ -277,7 +288,7 @@ void main() {
277288
});
278289

279290
testWidgets('hitting send button sends a "typing stopped" notice', (tester) async {
280-
await prepareComposeBox(tester, narrow: narrow);
291+
await prepareComposeBox(tester, narrow: narrow, streams: [channel]);
281292

282293
await checkStartTyping(tester, narrow);
283294

@@ -295,13 +306,14 @@ void main() {
295306
await testBinding.globalStore.add(eg.selfAccount, eg.initialSnapshot());
296307

297308
store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
309+
await store.addStream(channel);
298310
connection = store.connection as FakeApiConnection;
299311

300312
await tester.pumpWidget(const ZulipApp());
301313
await tester.pump();
302314
final navigator = await ZulipApp.navigator;
303315
unawaited(navigator.push(MaterialAccountWidgetRoute(
304-
accountId: eg.selfAccount.id, page: const ComposeBox(narrow: narrow))));
316+
accountId: eg.selfAccount.id, page: ComposeBox(narrow: narrow))));
305317
await tester.pumpAndSettle();
306318
}
307319

@@ -317,9 +329,9 @@ void main() {
317329
});
318330

319331
testWidgets('for content input, unfocusing sends a "typing stopped" notice', (tester) async {
320-
const narrow = ChannelNarrow(123);
332+
final narrow = ChannelNarrow(channel.streamId);
321333
final destinationNarrow = TopicNarrow(narrow.streamId, 'test topic');
322-
await prepareComposeBox(tester, narrow: narrow);
334+
await prepareComposeBox(tester, narrow: narrow, streams: [channel]);
323335
await enterTopic(tester, narrow: narrow, topic: destinationNarrow.topic);
324336

325337
await checkStartTyping(tester, destinationNarrow);
@@ -331,7 +343,7 @@ void main() {
331343
});
332344

333345
testWidgets('selection change sends a "typing started" notice', (tester) async {
334-
final controllerKey = await prepareComposeBox(tester, narrow: narrow);
346+
final controllerKey = await prepareComposeBox(tester, narrow: narrow, streams: [channel]);
335347
final composeBoxController = controllerKey.currentState!;
336348

337349
await checkStartTyping(tester, narrow);
@@ -352,7 +364,7 @@ void main() {
352364
});
353365

354366
testWidgets('unfocusing app sends a "typing stopped" notice', (tester) async {
355-
await prepareComposeBox(tester, narrow: narrow);
367+
await prepareComposeBox(tester, narrow: narrow, streams: [channel]);
356368

357369
await checkStartTyping(tester, narrow);
358370

@@ -382,7 +394,8 @@ void main() {
382394
addTearDown(TypingNotifier.debugReset);
383395

384396
final zulipLocalizations = GlobalLocalizations.zulipLocalizations;
385-
await prepareComposeBox(tester, narrow: const TopicNarrow(123, 'some topic'));
397+
await prepareComposeBox(tester, narrow: const TopicNarrow(123, 'some topic'),
398+
streams: [eg.stream(streamId: 123)]);
386399

387400
await tester.enterText(contentInputFinder, 'hello world');
388401

@@ -447,8 +460,10 @@ void main() {
447460
TypingNotifier.debugEnable = false;
448461
addTearDown(TypingNotifier.debugReset);
449462

450-
final narrow = ChannelNarrow(eg.stream().streamId);
451-
final controllerKey = await prepareComposeBox(tester, narrow: narrow);
463+
final channel = eg.stream();
464+
final narrow = ChannelNarrow(channel.streamId);
465+
final controllerKey = await prepareComposeBox(tester,
466+
narrow: narrow, streams: [channel]);
452467
final composeBoxController = controllerKey.currentState!;
453468

454469
// (When we check that the send button looks disabled, it should be because
@@ -507,8 +522,10 @@ void main() {
507522
TypingNotifier.debugEnable = false;
508523
addTearDown(TypingNotifier.debugReset);
509524

510-
final narrow = ChannelNarrow(eg.stream().streamId);
511-
final controllerKey = await prepareComposeBox(tester, narrow: narrow);
525+
final channel = eg.stream();
526+
final narrow = ChannelNarrow(channel.streamId);
527+
final controllerKey = await prepareComposeBox(tester,
528+
narrow: narrow, streams: [channel]);
512529
final composeBoxController = controllerKey.currentState!;
513530

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

test/widgets/message_list_test.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ void main() {
103103
testWidgets('MessageListPageState.narrow', (tester) async {
104104
final stream = eg.stream();
105105
await setupMessageListPage(tester, narrow: ChannelNarrow(stream.streamId),
106+
streams: [stream],
106107
messages: [eg.streamMessage(stream: stream, content: "<p>a message</p>")]);
107108
final state = MessageListPage.ancestorOf(tester.element(find.text("a message")));
108109
check(state.narrow).equals(ChannelNarrow(stream.streamId));
@@ -111,6 +112,7 @@ void main() {
111112
testWidgets('composeBoxController finds compose box', (tester) async {
112113
final stream = eg.stream();
113114
await setupMessageListPage(tester, narrow: ChannelNarrow(stream.streamId),
115+
streams: [stream],
114116
messages: [eg.streamMessage(stream: stream, content: "<p>a message</p>")]);
115117
final state = MessageListPage.ancestorOf(tester.element(find.text("a message")));
116118
check(state.composeBoxController).isNotNull();

0 commit comments

Comments
 (0)