Skip to content

Commit 815b9d2

Browse files
PIG208chrisbobbe
authored andcommitted
test [nfc]: Extract {dm,stream}OutboxMessage helpers
1 parent 75f0deb commit 815b9d2

File tree

2 files changed

+58
-41
lines changed

2 files changed

+58
-41
lines changed

test/example_data.dart

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import 'package:zulip/api/route/realm.dart';
1212
import 'package:zulip/api/route/channels.dart';
1313
import 'package:zulip/model/binding.dart';
1414
import 'package:zulip/model/database.dart';
15+
import 'package:zulip/model/message.dart';
1516
import 'package:zulip/model/narrow.dart';
1617
import 'package:zulip/model/settings.dart';
1718
import 'package:zulip/model/store.dart';
@@ -625,6 +626,45 @@ GetMessagesResult olderGetMessagesResult({
625626
);
626627
}
627628

629+
int _nextLocalMessageId = 1;
630+
631+
StreamOutboxMessage streamOutboxMessage({
632+
int? localMessageId,
633+
int? selfUserId,
634+
int? timestamp,
635+
ZulipStream? stream,
636+
String? topic,
637+
String? content,
638+
}) {
639+
final effectiveStream = stream ?? _stream(streamId: defaultStreamMessageStreamId);
640+
return OutboxMessage.fromConversation(
641+
StreamConversation(
642+
effectiveStream.streamId, TopicName(topic ?? 'topic'),
643+
displayRecipient: null,
644+
),
645+
localMessageId: localMessageId ?? _nextLocalMessageId++,
646+
selfUserId: selfUserId ?? selfUser.userId,
647+
timestamp: timestamp ?? utcTimestamp(),
648+
contentMarkdown: content ?? 'content') as StreamOutboxMessage;
649+
}
650+
651+
DmOutboxMessage dmOutboxMessage({
652+
int? localMessageId,
653+
required User from,
654+
required List<User> to,
655+
int? timestamp,
656+
String? content,
657+
}) {
658+
final allRecipientIds =
659+
[from, ...to].map((user) => user.userId).toList()..sort();
660+
return OutboxMessage.fromConversation(
661+
DmConversation(allRecipientIds: allRecipientIds),
662+
localMessageId: localMessageId ?? _nextLocalMessageId++,
663+
selfUserId: from.userId,
664+
timestamp: timestamp ?? utcTimestamp(),
665+
contentMarkdown: content ?? 'content') as DmOutboxMessage;
666+
}
667+
628668
PollWidgetData pollWidgetData({
629669
required String question,
630670
required List<String> options,

test/model/narrow_test.dart

Lines changed: 18 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,38 +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 OutboxMessage.fromConversation(
19-
StreamConversation(
20-
stream.streamId, TopicName(topic), displayRecipient: null),
21-
localMessageId: nextLocalMessageId++,
22-
selfUserId: eg.selfUser.userId,
23-
timestamp: 123456789,
24-
contentMarkdown: 'content') as StreamOutboxMessage;
25-
}
26-
27-
DmOutboxMessage dmOutboxMessage({required List<int> allRecipientIds}) {
28-
final senderUserId = allRecipientIds[0];
29-
return OutboxMessage.fromConversation(
30-
DmConversation(allRecipientIds: allRecipientIds..sort()),
31-
localMessageId: nextLocalMessageId++,
32-
selfUserId: senderUserId,
33-
timestamp: 123456789,
34-
contentMarkdown: 'content') as DmOutboxMessage;
35-
}
36-
3711
group('SendableNarrow', () {
3812
test('ofMessage: stream message', () {
3913
final message = eg.streamMessage();
@@ -61,11 +35,11 @@ void main() {
6135
eg.streamMessage(stream: stream, topic: 'topic'))).isTrue();
6236

6337
check(narrow.containsMessage(
64-
dmOutboxMessage(allRecipientIds: [1]))).isFalse();
38+
eg.dmOutboxMessage(from: eg.selfUser, to: [eg.otherUser]))).isFalse();
6539
check(narrow.containsMessage(
66-
streamOutboxMessage(stream: otherStream, topic: 'topic'))).isFalse();
40+
eg.streamOutboxMessage(stream: otherStream, topic: 'topic'))).isFalse();
6741
check(narrow.containsMessage(
68-
streamOutboxMessage(stream: stream, topic: 'topic'))).isTrue();
42+
eg.streamOutboxMessage(stream: stream, topic: 'topic'))).isTrue();
6943
});
7044
});
7145

@@ -91,13 +65,13 @@ void main() {
9165
eg.streamMessage(stream: stream, topic: 'topic'))).isTrue();
9266

9367
check(narrow.containsMessage(
94-
dmOutboxMessage(allRecipientIds: [1]))).isFalse();
68+
eg.dmOutboxMessage(from: eg.selfUser, to: [eg.otherUser]))).isFalse();
9569
check(narrow.containsMessage(
96-
streamOutboxMessage(stream: otherStream, topic: 'topic'))).isFalse();
70+
eg.streamOutboxMessage(stream: otherStream, topic: 'topic'))).isFalse();
9771
check(narrow.containsMessage(
98-
streamOutboxMessage(stream: stream, topic: 'topic2'))).isFalse();
72+
eg.streamOutboxMessage(stream: stream, topic: 'topic2'))).isFalse();
9973
check(narrow.containsMessage(
100-
streamOutboxMessage(stream: stream, topic: 'topic'))).isTrue();
74+
eg.streamOutboxMessage(stream: stream, topic: 'topic'))).isTrue();
10175
});
10276
});
10377

@@ -220,16 +194,19 @@ void main() {
220194
});
221195

222196
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);
223200
final narrow = DmNarrow(allRecipientIds: [1, 2], selfUserId: 2);
224201

225202
check(narrow.containsMessage(
226-
streamOutboxMessage(stream: eg.stream(), topic: 'topic'))).isFalse();
203+
eg.streamOutboxMessage(stream: eg.stream(), topic: 'topic'))).isFalse();
227204
check(narrow.containsMessage(
228-
dmOutboxMessage(allRecipientIds: [2]))).isFalse();
205+
eg.dmOutboxMessage(from: user2, to: []))).isFalse();
229206
check(narrow.containsMessage(
230-
dmOutboxMessage(allRecipientIds: [2, 3]))).isFalse();
207+
eg.dmOutboxMessage(from: user2, to: [user3]))).isFalse();
231208
check(narrow.containsMessage(
232-
dmOutboxMessage(allRecipientIds: [2, 1]))).isTrue();
209+
eg.dmOutboxMessage(from: user2, to: [user1]))).isTrue();
233210
});
234211
});
235212

@@ -245,9 +222,9 @@ void main() {
245222
eg.streamMessage(flags: [MessageFlag.wildcardMentioned]))).isTrue();
246223

247224
check(narrow.containsMessage(
248-
streamOutboxMessage(stream: eg.stream(), topic: 'topic'))).isFalse();
225+
eg.streamOutboxMessage(stream: eg.stream(), topic: 'topic'))).isFalse();
249226
check(narrow.containsMessage(
250-
dmOutboxMessage(allRecipientIds: [eg.selfUser.userId]))).isFalse();
227+
eg.dmOutboxMessage(from: eg.selfUser, to: []))).isFalse();
251228
});
252229
});
253230

@@ -261,9 +238,9 @@ void main() {
261238
eg.streamMessage(flags:[MessageFlag.starred]))).isTrue();
262239

263240
check(narrow.containsMessage(
264-
streamOutboxMessage(stream: eg.stream(), topic: 'topic'))).isFalse();
241+
eg.streamOutboxMessage(stream: eg.stream(), topic: 'topic'))).isFalse();
265242
check(narrow.containsMessage(
266-
dmOutboxMessage(allRecipientIds: [eg.selfUser.userId]))).isFalse();
243+
eg.dmOutboxMessage(from: eg.selfUser, to: []))).isFalse();
267244
});
268245
});
269246
}

0 commit comments

Comments
 (0)