Skip to content

Commit b7cde83

Browse files
committed
test [nfc]: Extract {dm,stream}OutboxMessage helpers
1 parent 5b3b962 commit b7cde83

File tree

2 files changed

+57
-40
lines changed

2 files changed

+57
-40
lines changed

test/example_data.dart

Lines changed: 39 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';
@@ -567,6 +568,44 @@ GetMessagesResult olderGetMessagesResult({
567568
);
568569
}
569570

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

test/model/narrow_test.dart

Lines changed: 18 additions & 40 deletions
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)