Skip to content

Commit 574fd85

Browse files
committed
message test [nfc]: Move UpdateMessageFlagsEvent tests from msglist tests
1 parent 83d49f1 commit 574fd85

File tree

2 files changed

+104
-101
lines changed

2 files changed

+104
-101
lines changed

test/model/message_list_test.dart

Lines changed: 0 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -339,107 +339,6 @@ void main() {
339339
});
340340
});
341341

342-
group('UpdateMessageFlagsEvent', () {
343-
UpdateMessageFlagsAddEvent mkAddEvent(
344-
MessageFlag flag,
345-
List<int> messageIds, {
346-
bool all = false,
347-
}) {
348-
return UpdateMessageFlagsAddEvent(
349-
id: 1,
350-
flag: flag,
351-
messages: messageIds,
352-
all: all,
353-
);
354-
}
355-
356-
const mkRemoveEvent = eg.updateMessageFlagsRemoveEvent;
357-
358-
group('add flag', () {
359-
test('not in list', () async {
360-
await prepare();
361-
final message = eg.streamMessage(flags: []);
362-
await prepareMessages(foundOldest: true, messages: [message]);
363-
await store.handleEvent(mkAddEvent(MessageFlag.read, [2]));
364-
checkNotNotified();
365-
check(model).messages.single.flags.deepEquals([]);
366-
});
367-
368-
test('affected message, unaffected message, absent message', () async {
369-
await prepare();
370-
final message1 = eg.streamMessage(flags: []);
371-
final message2 = eg.streamMessage(flags: []);
372-
await prepareMessages(foundOldest: true, messages: [message1, message2]);
373-
await store.handleEvent(mkAddEvent(MessageFlag.read, [message2.id, 3]));
374-
checkNotifiedOnce();
375-
check(model).messages
376-
..[0].flags.deepEquals([])
377-
..[1].flags.deepEquals([MessageFlag.read]);
378-
});
379-
380-
test('all: true, list non-empty', () async {
381-
await prepare();
382-
final message1 = eg.streamMessage(flags: []);
383-
final message2 = eg.streamMessage(flags: []);
384-
await prepareMessages(foundOldest: true, messages: [message1, message2]);
385-
await store.handleEvent(mkAddEvent(MessageFlag.read, [], all: true));
386-
checkNotifiedOnce();
387-
check(model).messages
388-
..[0].flags.deepEquals([MessageFlag.read])
389-
..[1].flags.deepEquals([MessageFlag.read]);
390-
});
391-
392-
test('all: true, list empty', () async {
393-
await prepare();
394-
await prepareMessages(foundOldest: true, messages: []);
395-
await store.handleEvent(mkAddEvent(MessageFlag.read, [], all: true));
396-
checkNotNotified();
397-
});
398-
399-
test('other flags not clobbered', () async {
400-
final message = eg.streamMessage(flags: [MessageFlag.starred]);
401-
await prepare();
402-
await prepareMessages(foundOldest: true, messages: [message]);
403-
await store.handleEvent(mkAddEvent(MessageFlag.read, [message.id]));
404-
checkNotifiedOnce();
405-
check(model).messages.single.flags.deepEquals([MessageFlag.starred, MessageFlag.read]);
406-
});
407-
});
408-
409-
group('remove flag', () {
410-
test('not in list', () async {
411-
await prepare();
412-
final message = eg.streamMessage(flags: [MessageFlag.read]);
413-
await prepareMessages(foundOldest: true, messages: [message]);
414-
await store.handleEvent(mkAddEvent(MessageFlag.read, [2]));
415-
checkNotNotified();
416-
check(model).messages.single.flags.deepEquals([MessageFlag.read]);
417-
});
418-
419-
test('affected message, unaffected message, absent message', () async {
420-
await prepare();
421-
final message1 = eg.streamMessage(flags: [MessageFlag.read]);
422-
final message2 = eg.streamMessage(flags: [MessageFlag.read]);
423-
final message3 = eg.streamMessage(flags: [MessageFlag.read]);
424-
await prepareMessages(foundOldest: true, messages: [message1, message2]);
425-
await store.handleEvent(mkRemoveEvent(MessageFlag.read, [message2, message3]));
426-
checkNotifiedOnce();
427-
check(model).messages
428-
..[0].flags.deepEquals([MessageFlag.read])
429-
..[1].flags.deepEquals([]);
430-
});
431-
432-
test('other flags not affected', () async {
433-
final message = eg.streamMessage(flags: [MessageFlag.starred, MessageFlag.read]);
434-
await prepare();
435-
await prepareMessages(foundOldest: true, messages: [message]);
436-
await store.handleEvent(mkRemoveEvent(MessageFlag.read, [message]));
437-
checkNotifiedOnce();
438-
check(model).messages.single.flags.deepEquals([MessageFlag.starred]);
439-
});
440-
});
441-
});
442-
443342
group('regression tests for #455', () {
444343
test('reaction events handled once, even when message is in two message lists', () async {
445344
final stream = eg.stream();

test/model/message_test.dart

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,110 @@ void main() {
243243
});
244244
});
245245

246+
group('handleUpdateMessageFlagsEvent', () {
247+
UpdateMessageFlagsAddEvent mkAddEvent(
248+
MessageFlag flag,
249+
List<int> messageIds, {
250+
bool all = false,
251+
}) {
252+
return UpdateMessageFlagsAddEvent(
253+
id: 1,
254+
flag: flag,
255+
messages: messageIds,
256+
all: all,
257+
);
258+
}
259+
260+
const mkRemoveEvent = eg.updateMessageFlagsRemoveEvent;
261+
262+
group('add flag', () {
263+
test('message is unknown', () async {
264+
await prepare();
265+
final message = eg.streamMessage(flags: []);
266+
await prepareMessages([message]);
267+
await store.handleEvent(mkAddEvent(MessageFlag.read, [2]));
268+
checkNotNotified();
269+
check(store).messages.values.single.flags.deepEquals([]);
270+
});
271+
272+
test('affected message, unaffected message, absent message', () async {
273+
await prepare();
274+
final message1 = eg.streamMessage(flags: []);
275+
final message2 = eg.streamMessage(flags: []);
276+
await prepareMessages([message1, message2]);
277+
await store.handleEvent(mkAddEvent(MessageFlag.read, [message2.id, 3]));
278+
checkNotifiedOnce();
279+
check(store).messages
280+
..[message1.id].flags.deepEquals([])
281+
..[message2.id].flags.deepEquals([MessageFlag.read]);
282+
});
283+
284+
test('all: true; we have some known messages', () async {
285+
await prepare();
286+
final message1 = eg.streamMessage(flags: []);
287+
final message2 = eg.streamMessage(flags: []);
288+
await prepareMessages([message1, message2]);
289+
await store.handleEvent(mkAddEvent(MessageFlag.read, [], all: true));
290+
checkNotifiedOnce();
291+
check(store).messages
292+
..[message1.id].flags.deepEquals([MessageFlag.read])
293+
..[message2.id].flags.deepEquals([MessageFlag.read]);
294+
});
295+
296+
test('all: true; we don\'t know about any messages', () async {
297+
await prepare();
298+
await prepareMessages([]);
299+
await store.handleEvent(mkAddEvent(MessageFlag.read, [], all: true));
300+
checkNotNotified();
301+
});
302+
303+
test('other flags not clobbered', () async {
304+
final message = eg.streamMessage(flags: [MessageFlag.starred]);
305+
await prepare();
306+
await prepareMessages([message]);
307+
await store.handleEvent(mkAddEvent(MessageFlag.read, [message.id]));
308+
checkNotifiedOnce();
309+
check(store).messages.values
310+
.single.flags.deepEquals([MessageFlag.starred, MessageFlag.read]);
311+
});
312+
});
313+
314+
group('remove flag', () {
315+
test('message is unknown', () async {
316+
await prepare();
317+
final message = eg.streamMessage(flags: [MessageFlag.read]);
318+
await prepareMessages([message]);
319+
await store.handleEvent(mkAddEvent(MessageFlag.read, [2]));
320+
checkNotNotified();
321+
check(store).messages.values
322+
.single.flags.deepEquals([MessageFlag.read]);
323+
});
324+
325+
test('affected message, unaffected message, absent message', () async {
326+
await prepare();
327+
final message1 = eg.streamMessage(flags: [MessageFlag.read]);
328+
final message2 = eg.streamMessage(flags: [MessageFlag.read]);
329+
final message3 = eg.streamMessage(flags: [MessageFlag.read]);
330+
await prepareMessages([message1, message2]);
331+
await store.handleEvent(mkRemoveEvent(MessageFlag.read, [message2, message3]));
332+
checkNotifiedOnce();
333+
check(store).messages
334+
..[message1.id].flags.deepEquals([MessageFlag.read])
335+
..[message2.id].flags.deepEquals([]);
336+
});
337+
338+
test('other flags not affected', () async {
339+
final message = eg.streamMessage(flags: [MessageFlag.starred, MessageFlag.read]);
340+
await prepare();
341+
await prepareMessages([message]);
342+
await store.handleEvent(mkRemoveEvent(MessageFlag.read, [message]));
343+
checkNotifiedOnce();
344+
check(store).messages.values
345+
.single.flags.deepEquals([MessageFlag.starred]);
346+
});
347+
});
348+
});
349+
246350
group('handleReactionEvent', () {
247351
test('add reaction', () async {
248352
final originalMessage = eg.streamMessage(reactions: []);

0 commit comments

Comments
 (0)