@@ -7,6 +7,32 @@ import 'package:zulip/model/narrow.dart';
7
7
import '../example_data.dart' as eg;
8
8
import 'narrow_checks.dart' ;
9
9
10
+ /// A [MessageBase] subclass for testing.
11
+ // TODO(#1441): switch to outbox-messages instead
12
+ sealed class _TestMessage <T extends Conversation > extends MessageBase <T > {
13
+ @override
14
+ final int ? id = null ;
15
+
16
+ _TestMessage () : super (senderId: eg.selfUser.userId, timestamp: 123456789 );
17
+ }
18
+
19
+ class _TestStreamMessage extends _TestMessage <StreamConversation > {
20
+ @override
21
+ final StreamConversation conversation;
22
+
23
+ _TestStreamMessage ({required ZulipStream stream, required String topic})
24
+ : conversation = StreamConversation (
25
+ stream.streamId, TopicName (topic), displayRecipient: null );
26
+ }
27
+
28
+ class _TestDmMessage extends _TestMessage <DmConversation > {
29
+ @override
30
+ final DmConversation conversation;
31
+
32
+ _TestDmMessage ({required List <int > allRecipientIds})
33
+ : conversation = DmConversation (allRecipientIds: allRecipientIds);
34
+ }
35
+
10
36
void main () {
11
37
group ('SendableNarrow' , () {
12
38
test ('ofMessage: stream message' , () {
@@ -33,6 +59,13 @@ void main() {
33
59
eg.streamMessage (stream: otherStream, topic: 'topic' ))).isFalse ();
34
60
check (narrow.containsMessage (
35
61
eg.streamMessage (stream: stream, topic: 'topic' ))).isTrue ();
62
+
63
+ check (narrow.containsMessage (
64
+ _TestDmMessage (allRecipientIds: [1 ]))).isFalse ();
65
+ check (narrow.containsMessage (
66
+ _TestStreamMessage (stream: otherStream, topic: 'topic' ))).isFalse ();
67
+ check (narrow.containsMessage (
68
+ _TestStreamMessage (stream: stream, topic: 'topic' ))).isTrue ();
36
69
});
37
70
});
38
71
@@ -56,6 +89,15 @@ void main() {
56
89
eg.streamMessage (stream: stream, topic: 'topic2' ))).isFalse ();
57
90
check (narrow.containsMessage (
58
91
eg.streamMessage (stream: stream, topic: 'topic' ))).isTrue ();
92
+
93
+ check (narrow.containsMessage (
94
+ _TestDmMessage (allRecipientIds: [1 ]))).isFalse ();
95
+ check (narrow.containsMessage (
96
+ _TestStreamMessage (stream: otherStream, topic: 'topic' ))).isFalse ();
97
+ check (narrow.containsMessage (
98
+ _TestStreamMessage (stream: stream, topic: 'topic2' ))).isFalse ();
99
+ check (narrow.containsMessage (
100
+ _TestStreamMessage (stream: stream, topic: 'topic' ))).isTrue ();
59
101
});
60
102
});
61
103
@@ -176,6 +218,19 @@ void main() {
176
218
check (narrow123.containsMessage (dm (user2, [user1, user3]))).isTrue ();
177
219
check (narrow123.containsMessage (dm (user3, [user1, user2]))).isTrue ();
178
220
});
221
+
222
+ test ('containsMessage with non-Message' , () {
223
+ final narrow = DmNarrow (allRecipientIds: [1 , 2 ], selfUserId: 2 );
224
+
225
+ check (narrow.containsMessage (
226
+ _TestStreamMessage (stream: eg.stream (), topic: 'topic' ))).isFalse ();
227
+ check (narrow.containsMessage (
228
+ _TestDmMessage (allRecipientIds: [2 ]))).isFalse ();
229
+ check (narrow.containsMessage (
230
+ _TestDmMessage (allRecipientIds: [2 , 3 ]))).isFalse ();
231
+ check (narrow.containsMessage (
232
+ _TestDmMessage (allRecipientIds: [1 , 2 ]))).isTrue ();
233
+ });
179
234
});
180
235
181
236
group ('MentionsNarrow' , () {
@@ -188,6 +243,11 @@ void main() {
188
243
eg.streamMessage (flags: [MessageFlag .mentioned]))).isTrue ();
189
244
check (narrow.containsMessage (
190
245
eg.streamMessage (flags: [MessageFlag .wildcardMentioned]))).isTrue ();
246
+
247
+ check (narrow.containsMessage (
248
+ _TestStreamMessage (stream: eg.stream (), topic: 'topic' ))).isFalse ();
249
+ check (narrow.containsMessage (
250
+ _TestDmMessage (allRecipientIds: [eg.selfUser.userId]))).isFalse ();
191
251
});
192
252
});
193
253
@@ -199,6 +259,11 @@ void main() {
199
259
eg.streamMessage (flags: []))).isFalse ();
200
260
check (narrow.containsMessage (
201
261
eg.streamMessage (flags: [MessageFlag .starred]))).isTrue ();
262
+
263
+ check (narrow.containsMessage (
264
+ _TestStreamMessage (stream: eg.stream (), topic: 'topic' ))).isFalse ();
265
+ check (narrow.containsMessage (
266
+ _TestDmMessage (allRecipientIds: [eg.selfUser.userId]))).isFalse ();
202
267
});
203
268
});
204
269
}
0 commit comments