Skip to content

Commit f04d8d1

Browse files
committed
msglist test: Add tests to verify whether the dialog appears
1 parent 9534695 commit f04d8d1

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed

test/widgets/message_list_test.dart

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -982,6 +982,109 @@ void main() {
982982
);
983983
}
984984

985+
group('confirmation dialog', () {
986+
testWidgets('CombinedFeedNarrow: show dialog', (tester) async {
987+
final message = eg.streamMessage(flags: []);
988+
final unreadMsgs = eg.unreadMsgs(channels:[
989+
UnreadChannelSnapshot(topic: message.topic,
990+
streamId: message.streamId, unreadMessageIds: [message.id])
991+
]);
992+
final narrow = CombinedFeedNarrow();
993+
994+
await setupMessageListPage(tester,
995+
narrow: narrow, messages: [message], unreadMsgs: unreadMsgs);
996+
check(isMarkAsReadButtonVisible(tester)).isTrue();
997+
998+
await tester.tap(find.byType(MarkAsReadWidget));
999+
await tester.pump();
1000+
1001+
final unreadCount = store.unreads.countInNarrow(narrow);
1002+
checkConfirmDialog(tester, unreadCount);
1003+
});
1004+
1005+
testWidgets('MentionsNarrow: show dialog', (tester) async {
1006+
final message = eg.streamMessage(flags: []);
1007+
final unreadMsgs = eg.unreadMsgs(mentions: [message.id]);
1008+
final narrow = MentionsNarrow();
1009+
1010+
await setupMessageListPage(tester,
1011+
narrow: narrow, messages: [message], unreadMsgs: unreadMsgs);
1012+
check(isMarkAsReadButtonVisible(tester)).isTrue();
1013+
1014+
await tester.tap(find.byType(MarkAsReadWidget));
1015+
await tester.pump();
1016+
1017+
final unreadCount = store.unreads.countInNarrow(narrow);
1018+
checkConfirmDialog(tester, unreadCount);
1019+
});
1020+
1021+
testWidgets('ChannelNarrow: show dialog', (tester) async {
1022+
final message = eg.streamMessage(flags: []);
1023+
final unreadMsgs = eg.unreadMsgs(channels:[
1024+
UnreadChannelSnapshot(topic: message.topic,
1025+
streamId: message.streamId, unreadMessageIds: [message.id])
1026+
]);
1027+
final narrow = ChannelNarrow(message.streamId);
1028+
1029+
await setupMessageListPage(tester,
1030+
narrow: narrow, messages: [message], unreadMsgs: unreadMsgs);
1031+
check(isMarkAsReadButtonVisible(tester)).isTrue();
1032+
1033+
await tester.tap(find.byType(MarkAsReadWidget));
1034+
await tester.pump();
1035+
1036+
final unreadCount = store.unreads.countInNarrow(narrow);
1037+
checkConfirmDialog(tester, unreadCount);
1038+
});
1039+
1040+
testWidgets('DmNarrow: do not show dialog', (tester) async {
1041+
final selfUser = eg.selfUser;
1042+
final otherUser = eg.otherUser;
1043+
final message = eg.dmMessage(flags: [], from: selfUser, to: [otherUser]);
1044+
final unreadMsgs = eg.unreadMsgs(dms: [
1045+
UnreadDmSnapshot(otherUserId: otherUser.userId, unreadMessageIds: [message.id])
1046+
]);
1047+
final narrow = DmNarrow.ofMessage(message, selfUserId: eg.selfUser.userId);
1048+
1049+
await setupMessageListPage(tester,
1050+
narrow: narrow, messages: [message], unreadMsgs: unreadMsgs);
1051+
check(isMarkAsReadButtonVisible(tester)).isTrue();
1052+
1053+
connection.prepare(json: UpdateMessageFlagsForNarrowResult(
1054+
processedCount: 1, updatedCount: 1,
1055+
firstProcessedId: message.id, lastProcessedId: message.id,
1056+
foundOldest: true, foundNewest: true).toJson());
1057+
await tester.tap(find.byType(MarkAsReadWidget));
1058+
await tester.pump();
1059+
1060+
checkNoDialog(tester);
1061+
await tester.pump(Duration.zero);
1062+
});
1063+
1064+
testWidgets('TopicNarrow: do not show dialog', (tester) async {
1065+
final message = eg.streamMessage(flags: []);
1066+
final unreadMsgs = eg.unreadMsgs(channels:[
1067+
UnreadChannelSnapshot(topic: message.topic,
1068+
streamId: message.streamId, unreadMessageIds: [message.id])
1069+
]);
1070+
final narrow = TopicNarrow.ofMessage(message);
1071+
1072+
await setupMessageListPage(tester,
1073+
narrow: narrow, messages: [message], unreadMsgs: unreadMsgs);
1074+
check(isMarkAsReadButtonVisible(tester)).isTrue();
1075+
1076+
connection.prepare(json: UpdateMessageFlagsForNarrowResult(
1077+
processedCount: 1, updatedCount: 1,
1078+
firstProcessedId: message.id, lastProcessedId: message.id,
1079+
foundOldest: true, foundNewest: true).toJson());
1080+
await tester.tap(find.byType(MarkAsReadWidget));
1081+
await tester.pump();
1082+
1083+
checkNoDialog(tester);
1084+
await tester.pump(Duration.zero);
1085+
});
1086+
});
1087+
9851088
testWidgets('from read to unread', (tester) async {
9861089
final message = eg.streamMessage(flags: [MessageFlag.read]);
9871090
await setupMessageListPage(tester, messages: [message]);

0 commit comments

Comments
 (0)