mirror of
https://github.com/zulip/zulip.git
synced 2025-11-01 20:44:04 +00:00
Add coverage for message_events.update_messages().
This commit is contained in:
115
frontend_tests/node_tests/message_events.js
Normal file
115
frontend_tests/node_tests/message_events.js
Normal file
@@ -0,0 +1,115 @@
|
||||
zrequire('message_events');
|
||||
zrequire('message_store');
|
||||
zrequire('people');
|
||||
|
||||
set_global('alert_words', {});
|
||||
set_global('condense', {});
|
||||
set_global('current_msg_list', {});
|
||||
set_global('message_edit', {});
|
||||
set_global('message_list', {});
|
||||
set_global('notifications', {});
|
||||
set_global('page_params', {});
|
||||
set_global('pm_list', {});
|
||||
set_global('stream_list', {});
|
||||
set_global('unread_ui', {});
|
||||
|
||||
alert_words.process_message = () => {};
|
||||
|
||||
const alice = {
|
||||
email: 'alice@example.com',
|
||||
user_id: 32,
|
||||
full_name: 'Alice Patel',
|
||||
};
|
||||
|
||||
people.add(alice);
|
||||
|
||||
function test_helper(side_effects) {
|
||||
const events = [];
|
||||
|
||||
_.each(side_effects, (side_effect) => {
|
||||
const parts = side_effect.split('.');
|
||||
const module = parts[0];
|
||||
const field = parts[1];
|
||||
|
||||
global[module][field] = () => {
|
||||
events.push(side_effect);
|
||||
};
|
||||
});
|
||||
|
||||
const self = {};
|
||||
|
||||
self.verify = () => {
|
||||
assert.deepEqual(side_effects, events);
|
||||
};
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
run_test('update_messages', () => {
|
||||
const original_message = {
|
||||
id: 111,
|
||||
sender_id: alice.user_id,
|
||||
};
|
||||
|
||||
message_store.add_message_metadata(original_message);
|
||||
|
||||
const events = [
|
||||
{
|
||||
message_id: 111,
|
||||
flags: [],
|
||||
orig_content: 'old stuff',
|
||||
content: '**new content**',
|
||||
rendered_content: '<b>new content</b>',
|
||||
},
|
||||
];
|
||||
|
||||
current_msg_list.get_row = (message_id) => {
|
||||
assert.equal(message_id, 111);
|
||||
return ['row-stub'];
|
||||
};
|
||||
current_msg_list.view = {};
|
||||
|
||||
var rendered_mgs;
|
||||
|
||||
current_msg_list.view.rerender_messages = (msgs_to_rerender, message_content_edited) => {
|
||||
rendered_mgs = msgs_to_rerender;
|
||||
assert.equal(message_content_edited, true);
|
||||
};
|
||||
|
||||
const side_effects = [
|
||||
'condense.un_cache_message_content_height',
|
||||
'message_edit.end',
|
||||
'notifications.received_messages',
|
||||
'unread_ui.update_unread_counts',
|
||||
'stream_list.update_streams_sidebar',
|
||||
'pm_list.update_private_messages',
|
||||
];
|
||||
|
||||
const helper = test_helper(side_effects);
|
||||
|
||||
page_params.realm_allow_edit_history = false;
|
||||
message_list.narrowed = 'stub-to-ignore';
|
||||
|
||||
// TEST THIS:
|
||||
message_events.update_messages(events);
|
||||
|
||||
helper.verify();
|
||||
|
||||
assert.deepEqual(rendered_mgs, [
|
||||
{
|
||||
alerted: false,
|
||||
content: '<b>new content</b>',
|
||||
id: 111,
|
||||
last_edit_timestamp: undefined,
|
||||
mentioned: false,
|
||||
mentioned_me_directly: false,
|
||||
raw_content: '**new content**',
|
||||
reactions: [],
|
||||
sender_email: 'alice@example.com',
|
||||
sender_full_name: 'Alice Patel',
|
||||
sender_id: 32,
|
||||
sent_by_me: false,
|
||||
},
|
||||
]);
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user