@@ -1447,6 +1447,44 @@ void main() {
1447
1447
check (model.messages.map ((m) => m.id)).deepEquals (expected..add (301 + i));
1448
1448
}
1449
1449
});
1450
+
1451
+ test ('in StarredMessagesNarrow' , () async {
1452
+ final stream = eg.stream (streamId: 1 , name: 'muted stream' );
1453
+ const mutedTopic = 'muted' ;
1454
+ await prepare (narrow: const StarredMessagesNarrow ());
1455
+ await store.addStream (stream);
1456
+ await store.addUserTopic (stream, mutedTopic, UserTopicVisibilityPolicy .muted);
1457
+ await store.addSubscription (eg.subscription (stream, isMuted: true ));
1458
+
1459
+ List <Message > getMessages (int startingId) => [
1460
+ eg.streamMessage (id: startingId,
1461
+ stream: stream, topic: mutedTopic, flags: [MessageFlag .starred]),
1462
+ eg.dmMessage (id: startingId + 1 ,
1463
+ from: eg.otherUser, to: [eg.selfUser], flags: [MessageFlag .starred]),
1464
+ ];
1465
+
1466
+ // Check filtering on fetchInitial…
1467
+ await prepareMessages (foundOldest: false , messages: getMessages (201 ));
1468
+ final expected = < int > [];
1469
+ check (model.messages.map ((m) => m.id))
1470
+ .deepEquals (expected..addAll ([201 , 202 ]));
1471
+
1472
+ // … and on fetchOlder…
1473
+ connection.prepare (json: olderResult (
1474
+ anchor: 201 , foundOldest: true , messages: getMessages (101 )).toJson ());
1475
+ await model.fetchOlder ();
1476
+ checkNotified (count: 2 );
1477
+ check (model.messages.map ((m) => m.id))
1478
+ .deepEquals (expected..insertAll (0 , [101 , 102 ]));
1479
+
1480
+ // … and on MessageEvent.
1481
+ final messages = getMessages (301 );
1482
+ for (var i = 0 ; i < 2 ; i += 1 ) {
1483
+ await store.handleEvent (MessageEvent (id: 0 , message: messages[i]));
1484
+ checkNotifiedOnce ();
1485
+ check (model.messages.map ((m) => m.id)).deepEquals (expected..add (301 + i));
1486
+ }
1487
+ });
1450
1488
});
1451
1489
1452
1490
test ('recipient headers are maintained consistently' , () async {
@@ -1693,6 +1731,7 @@ void checkInvariants(MessageListView model) {
1693
1731
case TopicNarrow ():
1694
1732
case DmNarrow ():
1695
1733
case MentionsNarrow ():
1734
+ case StarredMessagesNarrow ():
1696
1735
}
1697
1736
}
1698
1737
0 commit comments