Skip to content

Commit e69a8ce

Browse files
committed
message test [nfc]: Move UpdateMessageFlagsEvent tests from msglist tests
1 parent 43f575a commit e69a8ce

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
@@ -241,6 +241,110 @@ void main() {
241241
});
242242
});
243243

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

0 commit comments

Comments
 (0)