Skip to content

Commit 5c23c46

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

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

test/widgets/message_list_test.dart

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

0 commit comments

Comments
 (0)