Skip to content

Commit 42fbe0f

Browse files
committed
message test [nfc]: Move UpdateMessageFlagsEvent tests from msglist tests
1 parent 20572a0 commit 42fbe0f

File tree

2 files changed

+104
-101
lines changed

2 files changed

+104
-101
lines changed

test/model/message_list_test.dart

-101
Original file line numberDiff line numberDiff line change
@@ -330,107 +330,6 @@ void main() {
330330
});
331331
});
332332

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

test/model/message_test.dart

+104
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,110 @@ void main() {
236236
});
237237
});
238238

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

0 commit comments

Comments
 (0)