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 = []; for (const side_effect of side_effects) { 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: 'new content', }, ]; current_msg_list.get_row = (message_id) => { assert.equal(message_id, 111); return ['row-stub']; }; current_msg_list.view = {}; let 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: 'new content', 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, topic: undefined, }, ]); });