Skip to content

Commit 2ed1617

Browse files
committed
msglist test: Verify whether the MarkNarrowAsRead dialog appears
1 parent 3201a7b commit 2ed1617

File tree

1 file changed

+104
-0
lines changed

1 file changed

+104
-0
lines changed

test/widgets/message_list_test.dart

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,6 +1192,110 @@ void main() {
11921192
);
11931193
}
11941194

1195+
group('confirmation dialog', () {
1196+
Future<void> showsConfirmDialog({required WidgetTester tester,
1197+
required Narrow narrow, required List<Message> messages,
1198+
required UnreadMessagesSnapshot unreadMsgs,
1199+
}) async {
1200+
await setupMessageListPage(tester, narrow: narrow,
1201+
messages: messages, unreadMsgs: unreadMsgs);
1202+
check(isMarkAsReadButtonVisible(tester)).isTrue();
1203+
1204+
await tester.tap(find.byType(MarkAsReadWidget));
1205+
await tester.pump();
1206+
1207+
final unreadCount = store.unreads.countInNarrow(narrow);
1208+
checkConfirmDialog(tester, unreadCount);
1209+
}
1210+
1211+
Future<void> doesNotShowConfirmDialog({required WidgetTester tester,
1212+
required Narrow narrow, required List<Message> messages,
1213+
required UnreadMessagesSnapshot unreadMsgs,
1214+
required UpdateMessageFlagsForNarrowResult updateResult,
1215+
}) async {
1216+
await setupMessageListPage(tester,
1217+
narrow: narrow, messages: messages, unreadMsgs: unreadMsgs);
1218+
1219+
check(isMarkAsReadButtonVisible(tester)).isTrue();
1220+
1221+
connection.prepare(json: updateResult.toJson());
1222+
await tester.tap(find.byType(MarkAsReadWidget));
1223+
await tester.pump();
1224+
1225+
checkNoDialog(tester);
1226+
await tester.pump(Duration.zero);
1227+
}
1228+
1229+
testWidgets('CombinedFeedNarrow: show dialog', (tester) async {
1230+
final message = eg.streamMessage(flags: []);
1231+
final unreadMsgs = eg.unreadMsgs(channels:[
1232+
UnreadChannelSnapshot(topic: message.topic,
1233+
streamId: message.streamId, unreadMessageIds: [message.id])
1234+
]);
1235+
final narrow = CombinedFeedNarrow();
1236+
1237+
await showsConfirmDialog(tester: tester,
1238+
narrow: narrow, messages: [message],unreadMsgs: unreadMsgs);
1239+
});
1240+
1241+
testWidgets('MentionsNarrow: show dialog', (tester) async {
1242+
final message = eg.streamMessage(flags: []);
1243+
final unreadMsgs = eg.unreadMsgs(mentions: [message.id],
1244+
channels: [UnreadChannelSnapshot(topic: message.topic,
1245+
streamId: message.streamId, unreadMessageIds: [message.id])
1246+
]);
1247+
final narrow = MentionsNarrow();
1248+
1249+
await showsConfirmDialog(tester: tester,
1250+
narrow: narrow, messages: [message],unreadMsgs: unreadMsgs);
1251+
});
1252+
1253+
testWidgets('ChannelNarrow: show dialog', (tester) async {
1254+
final message = eg.streamMessage(flags: []);
1255+
final unreadMsgs = eg.unreadMsgs(channels:[
1256+
UnreadChannelSnapshot(topic: message.topic,
1257+
streamId: message.streamId, unreadMessageIds: [message.id])
1258+
]);
1259+
final narrow = ChannelNarrow(message.streamId);
1260+
1261+
await showsConfirmDialog(tester: tester,
1262+
narrow: narrow, messages: [message],unreadMsgs: unreadMsgs);
1263+
});
1264+
1265+
testWidgets('DmNarrow: do not show dialog', (tester) async {
1266+
final selfUser = eg.selfUser;
1267+
final otherUser = eg.otherUser;
1268+
final message = eg.dmMessage(flags: [], from: selfUser, to: [otherUser]);
1269+
final unreadMsgs = eg.unreadMsgs(dms: [
1270+
UnreadDmSnapshot(otherUserId: otherUser.userId, unreadMessageIds: [message.id])
1271+
]);
1272+
final narrow = DmNarrow.ofMessage(message, selfUserId: eg.selfUser.userId);
1273+
1274+
final updateResult = UpdateMessageFlagsForNarrowResult(
1275+
processedCount: 1, updatedCount: 1,
1276+
firstProcessedId: message.id, lastProcessedId: message.id,
1277+
foundOldest: true, foundNewest: true);
1278+
await doesNotShowConfirmDialog(tester: tester, narrow: narrow,
1279+
messages: [message], unreadMsgs: unreadMsgs, updateResult: updateResult);
1280+
});
1281+
1282+
testWidgets('TopicNarrow: do not show dialog', (tester) async {
1283+
final message = eg.streamMessage(flags: []);
1284+
final unreadMsgs = eg.unreadMsgs(channels:[
1285+
UnreadChannelSnapshot(topic: message.topic,
1286+
streamId: message.streamId, unreadMessageIds: [message.id])
1287+
]);
1288+
final narrow = TopicNarrow.ofMessage(message);
1289+
1290+
final updateResult = UpdateMessageFlagsForNarrowResult(
1291+
processedCount: 1, updatedCount: 1,
1292+
firstProcessedId: message.id, lastProcessedId: message.id,
1293+
foundOldest: true, foundNewest: true);
1294+
await doesNotShowConfirmDialog(tester: tester, narrow: narrow,
1295+
messages: [message], unreadMsgs: unreadMsgs, updateResult: updateResult);
1296+
});
1297+
});
1298+
11951299
testWidgets('from read to unread', (tester) async {
11961300
final message = eg.streamMessage(flags: [MessageFlag.read]);
11971301
await setupMessageListPage(tester, messages: [message]);

0 commit comments

Comments
 (0)