Skip to content

Commit eeb89b4

Browse files
committed
message test [nfc]: Move tests to a new home
While they are no longer integrations tests, we make it clearer that these tests correspond to the code responsible for parsing move data. This is also the more appropriate place to test them thoroughly, by focusing on the parsed result. Signed-off-by: Zixuan James Li <[email protected]>
1 parent cf816ef commit eeb89b4

File tree

2 files changed

+39
-76
lines changed

2 files changed

+39
-76
lines changed

test/api/model/events_test.dart

+39
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,45 @@ void main() {
162162
..origStreamId.equals(1)
163163
..newStreamId.equals(1);
164164
});
165+
166+
test('no message move', () {
167+
check(Event.fromJson({ ...baseJson,
168+
'orig_content': 'foo',
169+
'orig_rendered_content': 'foo',
170+
'content': 'bar',
171+
'rendered_content': 'bar',
172+
})).isA<UpdateMessageEvent>().moveData.isNull();
173+
});
174+
175+
test('stream move but no orig_subject', () {
176+
check(() => Event.fromJson({ ...baseMoveJson,
177+
'stream_id': 1,
178+
'new_stream_id': 2,
179+
'orig_subject': null,
180+
})).throws<void>();
181+
});
182+
183+
test('move but no subject or new_stream_id', () {
184+
check(() => Event.fromJson({ ...baseMoveJson,
185+
'new_stream_id': null,
186+
'subject': null,
187+
})).throws<FormatException>();
188+
});
189+
190+
test('move but no orig_stream_id', () {
191+
check(() => Event.fromJson({ ...baseMoveJson,
192+
'stream_id': null,
193+
'new_stream_id': 2,
194+
})).throws<void>();
195+
});
196+
197+
test('move but no propagate_mode', () {
198+
check(() => Event.fromJson({ ...baseMoveJson,
199+
'orig_subject': 'foo',
200+
'subject': 'bar',
201+
'propagate_mode': null,
202+
})).throws<void>();
203+
});
165204
});
166205

167206
test('delete_message: require streamId and topic for stream messages', () {

test/model/message_test.dart

-76
Original file line numberDiff line numberDiff line change
@@ -377,82 +377,6 @@ void main() {
377377
});
378378
});
379379

380-
group('message move', () {
381-
final message = eg.streamMessage();
382-
final baseJson = {
383-
'id': 1,
384-
'type': 'update_message',
385-
'user_id': eg.selfUser.userId,
386-
'rendering_only': false,
387-
'message_id': message.id,
388-
'message_ids': [message.id],
389-
'flags': <String>[],
390-
'edit_timestamp': 1718741351,
391-
'stream_id': eg.stream().streamId,
392-
};
393-
final baseMoveJson = { ...baseJson,
394-
'orig_subject': 'foo',
395-
'propagate_mode': 'change_all',
396-
};
397-
398-
Future<void> setupAndHandleEvent(Map<String, Object?> json) async {
399-
await prepare();
400-
await prepareMessages([message]);
401-
await store.handleEvent(Event.fromJson(json) as UpdateMessageEvent);
402-
}
403-
404-
test('smoke', () async {
405-
await setupAndHandleEvent({ ...baseMoveJson,
406-
'stream_id': 1,
407-
'new_stream_id': 2,
408-
});
409-
checkNotified(count: 2);
410-
check(store).messages[message.id].isA<StreamMessage>()
411-
..topic.equals(message.topic)
412-
..streamId.equals(2);
413-
});
414-
415-
test('no message move', () async {
416-
await setupAndHandleEvent({ ...baseJson,
417-
'orig_content': 'foo',
418-
'orig_rendered_content': 'foo',
419-
'content': 'bar',
420-
'rendered_content': 'bar',
421-
});
422-
checkNotifiedOnce();
423-
});
424-
425-
test('stream move but no orig_subject', () async {
426-
await check(setupAndHandleEvent({ ...baseMoveJson,
427-
'stream_id': 1,
428-
'new_stream_id': 2,
429-
'orig_subject': null,
430-
})).throws();
431-
});
432-
433-
test('move but no subject or new_stream_id', () async {
434-
await check(setupAndHandleEvent({ ...baseMoveJson,
435-
'new_stream_id': null,
436-
'subject': null,
437-
})).throws<FormatException>();
438-
});
439-
440-
test('move but no orig_stream_id', () async {
441-
await check(setupAndHandleEvent({ ...baseMoveJson,
442-
'stream_id': null,
443-
'new_stream_id': 2,
444-
})).throws();
445-
});
446-
447-
test('move but no propagate_mode', () async {
448-
await check(setupAndHandleEvent({ ...baseMoveJson,
449-
'orig_subject': 'foo',
450-
'subject': 'bar',
451-
'propagate_mode': null,
452-
})).throws();
453-
});
454-
});
455-
456380
group('handleDeleteMessageEvent', () {
457381
test('delete an unknown message', () async {
458382
final message1 = eg.streamMessage();

0 commit comments

Comments
 (0)