@@ -240,6 +240,49 @@ void main() {
240
240
});
241
241
});
242
242
243
+ group ('isUnread' , () {
244
+ final unreadDmMessage = eg.dmMessage (
245
+ from: eg.otherUser, to: [eg.selfUser], flags: []);
246
+ final readDmMessage = eg.dmMessage (
247
+ from: eg.otherUser, to: [eg.selfUser], flags: [MessageFlag .read]);
248
+ final unreadChannelMessage = eg.streamMessage (flags: []);
249
+ final readChannelMessage = eg.streamMessage (flags: [MessageFlag .read]);
250
+
251
+ final allMessages = [
252
+ unreadDmMessage, unreadChannelMessage,
253
+ readDmMessage, readChannelMessage,
254
+ ];
255
+
256
+ void doTestCommon (String description, int messageId, bool expected) {
257
+ test (description, () {
258
+ prepare ();
259
+ model.oldUnreadsMissing = false ;
260
+ fillWithMessages (allMessages);
261
+ check (model.isUnread (messageId)).equals (expected);
262
+ });
263
+ }
264
+
265
+ void doTestOldUnreadsMissing (String description, int messageId, bool ? expected) {
266
+ assert (expected == true || expected == null );
267
+ test ('oldUnreadsMissing; $description ' , () {
268
+ prepare ();
269
+ model.oldUnreadsMissing = true ;
270
+ fillWithMessages (allMessages);
271
+ check (model.isUnread (messageId)).equals (expected);
272
+ });
273
+ }
274
+
275
+ doTestCommon ('unread DM message' , unreadDmMessage.id, true );
276
+ doTestCommon ('read DM message' , readDmMessage.id, false );
277
+ doTestCommon ('unread channel message' , unreadChannelMessage.id, true );
278
+ doTestCommon ('read channel message' , readChannelMessage.id, false );
279
+
280
+ doTestOldUnreadsMissing ('unread DM message' , unreadDmMessage.id, true );
281
+ doTestOldUnreadsMissing ('read DM message' , readDmMessage.id, null );
282
+ doTestOldUnreadsMissing ('unread channel message' , unreadChannelMessage.id, true );
283
+ doTestOldUnreadsMissing ('read channel message' , readChannelMessage.id, null );
284
+ });
285
+
243
286
group ('handleMessageEvent' , () {
244
287
for (final (isUnread, isStream, isDirectMentioned, isWildcardMentioned) in [
245
288
(true , true , true , true ),
0 commit comments