Skip to content

Commit 33dbeba

Browse files
committed
test [nfc]: Extract {dm,stream}OutboxMessage helpers
1 parent 4b60293 commit 33dbeba

File tree

2 files changed

+57
-40
lines changed

2 files changed

+57
-40
lines changed

test/example_data.dart

+39
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import 'package:zulip/api/route/messages.dart';
1111
import 'package:zulip/api/route/realm.dart';
1212
import 'package:zulip/api/route/channels.dart';
1313
import 'package:zulip/model/database.dart';
14+
import 'package:zulip/model/message.dart';
1415
import 'package:zulip/model/narrow.dart';
1516
import 'package:zulip/model/settings.dart';
1617
import 'package:zulip/model/store.dart';
@@ -566,6 +567,44 @@ GetMessagesResult olderGetMessagesResult({
566567
);
567568
}
568569

570+
int _nextLocalMessageId = 1;
571+
572+
StreamOutboxMessage streamOutboxMessage({
573+
int? localMessageId,
574+
int? selfUserId,
575+
int? timestamp,
576+
ZulipStream? stream,
577+
String? topic,
578+
String? content,
579+
}) {
580+
final effectiveStream = stream ?? _stream(streamId: defaultStreamMessageStreamId);
581+
return StreamOutboxMessage(
582+
localMessageId: localMessageId ?? _nextLocalMessageId++,
583+
selfUserId: selfUserId ?? selfUser.userId,
584+
timestamp: timestamp ?? utcTimestamp(),
585+
conversation: StreamConversation(
586+
effectiveStream.streamId, TopicName(topic ?? 'topic'),
587+
displayRecipient: null,
588+
),
589+
content: content ?? 'content');
590+
}
591+
592+
DmOutboxMessage dmOutboxMessage({
593+
int? localMessageId,
594+
required User from,
595+
required List<User> to,
596+
int? timestamp,
597+
String? content,
598+
}) {
599+
final allRecipientIds = [from, ...to].map((user) => user.userId).toList();
600+
return DmOutboxMessage(
601+
localMessageId: localMessageId ?? _nextLocalMessageId++,
602+
selfUserId: from.userId,
603+
timestamp: timestamp ?? utcTimestamp(),
604+
conversation: DmConversation(allRecipientIds: allRecipientIds),
605+
content: content ?? 'content');
606+
}
607+
569608
PollWidgetData pollWidgetData({
570609
required String question,
571610
required List<String> options,

test/model/narrow_test.dart

+18-40
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,12 @@
22
import 'package:checks/checks.dart';
33
import 'package:test/scaffolding.dart';
44
import 'package:zulip/api/model/model.dart';
5-
import 'package:zulip/model/message.dart';
65
import 'package:zulip/model/narrow.dart';
76

87
import '../example_data.dart' as eg;
98
import 'narrow_checks.dart';
109

1110
void main() {
12-
int nextLocalMessageId = 1;
13-
14-
StreamOutboxMessage streamOutboxMessage({
15-
required ZulipStream stream,
16-
required String topic,
17-
}) {
18-
return StreamOutboxMessage(
19-
localMessageId: nextLocalMessageId++,
20-
selfUserId: eg.selfUser.userId,
21-
timestamp: 123456789,
22-
conversation: StreamConversation(
23-
stream.streamId, TopicName(topic), displayRecipient: null),
24-
content: 'content');
25-
}
26-
27-
DmOutboxMessage dmOutboxMessage({required List<int> allRecipientIds}) {
28-
return DmOutboxMessage(
29-
localMessageId: nextLocalMessageId++,
30-
selfUserId: allRecipientIds[0],
31-
timestamp: 123456789,
32-
conversation: DmConversation(allRecipientIds: allRecipientIds),
33-
content: 'content');
34-
}
35-
3611
group('SendableNarrow', () {
3712
test('ofMessage: stream message', () {
3813
final message = eg.streamMessage();
@@ -60,11 +35,11 @@ void main() {
6035
eg.streamMessage(stream: stream, topic: 'topic'))).isTrue();
6136

6237
check(narrow.containsMessage(
63-
dmOutboxMessage(allRecipientIds: [1]))).isFalse();
38+
eg.dmOutboxMessage(from: eg.selfUser, to: [eg.otherUser]))).isFalse();
6439
check(narrow.containsMessage(
65-
streamOutboxMessage(stream: otherStream, topic: 'topic'))).isFalse();
40+
eg.streamOutboxMessage(stream: otherStream, topic: 'topic'))).isFalse();
6641
check(narrow.containsMessage(
67-
streamOutboxMessage(stream: stream, topic: 'topic'))).isTrue();
42+
eg.streamOutboxMessage(stream: stream, topic: 'topic'))).isTrue();
6843
});
6944
});
7045

@@ -90,13 +65,13 @@ void main() {
9065
eg.streamMessage(stream: stream, topic: 'topic'))).isTrue();
9166

9267
check(narrow.containsMessage(
93-
dmOutboxMessage(allRecipientIds: [1]))).isFalse();
68+
eg.dmOutboxMessage(from: eg.selfUser, to: [eg.otherUser]))).isFalse();
9469
check(narrow.containsMessage(
95-
streamOutboxMessage(stream: otherStream, topic: 'topic'))).isFalse();
70+
eg.streamOutboxMessage(stream: otherStream, topic: 'topic'))).isFalse();
9671
check(narrow.containsMessage(
97-
streamOutboxMessage(stream: stream, topic: 'topic2'))).isFalse();
72+
eg.streamOutboxMessage(stream: stream, topic: 'topic2'))).isFalse();
9873
check(narrow.containsMessage(
99-
streamOutboxMessage(stream: stream, topic: 'topic'))).isTrue();
74+
eg.streamOutboxMessage(stream: stream, topic: 'topic'))).isTrue();
10075
});
10176
});
10277

@@ -219,16 +194,19 @@ void main() {
219194
});
220195

221196
test('containsMessage with non-Message', () {
197+
final user1 = eg.user(userId: 1);
198+
final user2 = eg.user(userId: 2);
199+
final user3 = eg.user(userId: 3);
222200
final narrow = DmNarrow(allRecipientIds: [1, 2], selfUserId: 2);
223201

224202
check(narrow.containsMessage(
225-
streamOutboxMessage(stream: eg.stream(), topic: 'topic'))).isFalse();
203+
eg.streamOutboxMessage(stream: eg.stream(), topic: 'topic'))).isFalse();
226204
check(narrow.containsMessage(
227-
dmOutboxMessage(allRecipientIds: [2]))).isFalse();
205+
eg.dmOutboxMessage(from: user2, to: []))).isFalse();
228206
check(narrow.containsMessage(
229-
dmOutboxMessage(allRecipientIds: [2, 3]))).isFalse();
207+
eg.dmOutboxMessage(from: user2, to: [user3]))).isFalse();
230208
check(narrow.containsMessage(
231-
dmOutboxMessage(allRecipientIds: [1, 2]))).isTrue();
209+
eg.dmOutboxMessage(from: user1, to: [user2]))).isTrue();
232210
});
233211
});
234212

@@ -244,9 +222,9 @@ void main() {
244222
eg.streamMessage(flags: [MessageFlag.wildcardMentioned]))).isTrue();
245223

246224
check(narrow.containsMessage(
247-
streamOutboxMessage(stream: eg.stream(), topic: 'topic'))).isFalse();
225+
eg.streamOutboxMessage(stream: eg.stream(), topic: 'topic'))).isFalse();
248226
check(narrow.containsMessage(
249-
dmOutboxMessage(allRecipientIds: [eg.selfUser.userId]))).isFalse();
227+
eg.dmOutboxMessage(from: eg.selfUser, to: []))).isFalse();
250228
});
251229
});
252230

@@ -260,9 +238,9 @@ void main() {
260238
eg.streamMessage(flags:[MessageFlag.starred]))).isTrue();
261239

262240
check(narrow.containsMessage(
263-
streamOutboxMessage(stream: eg.stream(), topic: 'topic'))).isFalse();
241+
eg.streamOutboxMessage(stream: eg.stream(), topic: 'topic'))).isFalse();
264242
check(narrow.containsMessage(
265-
dmOutboxMessage(allRecipientIds: [eg.selfUser.userId]))).isFalse();
243+
eg.dmOutboxMessage(from: eg.selfUser, to: []))).isFalse();
266244
});
267245
});
268246
}

0 commit comments

Comments
 (0)