Files
zulip/frontend_tests/node_tests/server_events.js
Tim Abbott 94e6cb9abd pointer: Remove frontend logic tracking furthest_read.
Since we are no longer using the "pointer" value sent in
page_params.pointer for anything, there's no value in continuing to
send it from the server to the client.

The remaining code in pointer.js is logic managing state for the
currently selected message.
2020-06-18 12:55:59 -07:00

129 lines
3.3 KiB
JavaScript

const noop = function () {};
set_global('document', {});
set_global('addEventListener', noop);
global.stub_out_jquery();
zrequire('message_store');
zrequire('server_events_dispatch');
zrequire('server_events');
zrequire('sent_messages');
set_global('channel', {});
set_global('home_msg_list', {
select_id: noop,
selected_id: function () {return 1;},
});
set_global('page_params', {test_suite: false});
set_global('reload_state', {
is_in_progress: function () {return false;},
});
// we also directly write to pointer
set_global('pointer', {});
set_global('echo', {
process_from_server: function (messages) {
return messages;
},
update_realm_filter_rules: noop,
});
set_global('ui_report', {
hide_error: function () { return false; },
show_error: function () { return false; },
});
server_events.home_view_loaded();
run_test('message_event', () => {
const event = {
type: 'message',
message: {
content: 'hello',
},
flags: [],
};
let inserted;
set_global('message_events', {
insert_new_messages: function (messages) {
assert.equal(messages[0].content, event.message.content);
inserted = true;
},
});
server_events._get_events_success([event]);
assert(inserted);
});
// Start blueslip tests here
const setup = function () {
server_events.home_view_loaded();
set_global('message_events', {
insert_new_messages: function () {
throw Error('insert error');
},
update_messages: function () {
throw Error('update error');
},
});
set_global('stream_events', {
update_property: function () {
throw Error('subs update error');
},
});
};
run_test('event_dispatch_error', () => {
setup();
const data = {events: [{type: 'stream', op: 'update', id: 1, other: 'thing'}]};
global.channel.get = function (options) {
options.success(data);
};
blueslip.expect('error', 'Failed to process an event\nsubs update error');
server_events.restart_get_events();
const logs = blueslip.get_test_logs('error');
assert.equal(logs.length, 1);
assert.equal(logs[0].more_info.event.type, 'stream');
assert.equal(logs[0].more_info.event.op, 'update');
assert.equal(logs[0].more_info.event.id, 1);
assert.equal(logs[0].more_info.other, undefined);
});
run_test('event_new_message_error', () => {
setup();
const data = {events: [{type: 'message', id: 1, other: 'thing', message: {}}]};
global.channel.get = function (options) {
options.success(data);
};
blueslip.expect('error', 'Failed to insert new messages\ninsert error');
server_events.restart_get_events();
const logs = blueslip.get_test_logs('error');
assert.equal(logs.length, 1);
assert.equal(logs[0].more_info, undefined);
});
run_test('event_edit_message_error', () => {
setup();
const data = {events: [{type: 'update_message', id: 1, other: 'thing'}]};
global.channel.get = function (options) {
options.success(data);
};
blueslip.expect('error', 'Failed to update messages\nupdate error');
server_events.restart_get_events();
const logs = blueslip.get_test_logs('error');
assert.equal(logs.length, 1);
assert.equal(logs[0].more_info, undefined);
});