zulip/frontend_tests/node_tests/submessage.js

95 lines
2.0 KiB
JavaScript
Raw Normal View History

zrequire('submessage');
set_global('channel', {});
set_global('widgetize', {});
set_global('message_store', {});
run_test('get_message_events', () => {
let msg = {};
assert.equal(submessage.get_message_events(msg), undefined);
msg = {
submessages: [],
};
assert.equal(submessage.get_message_events(msg), undefined);
const submessages = [
{id: 222, sender_id: 99, content: '84'},
{id: 9, sender_id: 33, content: '42'},
];
msg = {
locally_echoed: true,
submessages: submessages,
};
assert.equal(submessage.get_message_events(msg), undefined);
msg = {
submessages: submessages,
};
assert.deepEqual(submessage.get_message_events(msg), [
{sender_id: 33, data: 42},
{sender_id: 99, data: 84},
]);
});
run_test('make_server_callback', () => {
const message_id = 444;
const callback = submessage.make_server_callback(message_id);
let was_posted;
channel.post = function (opts) {
was_posted = true;
assert.deepEqual(opts, {
url: '/json/submessage',
data: {
message_id: message_id,
msg_type: 'whatever',
content: '{"foo":32}',
},
});
};
callback({
msg_type: 'whatever',
data: {foo: 32},
});
assert(was_posted);
});
run_test('handle_event', () => {
const message = {
id: 42,
};
const event = {
id: 11,
msg_type: 'widget',
sender_id: 99,
message_id: message.id,
content: '"some_data"',
};
let args;
widgetize.handle_event = (opts) => {
args = opts;
};
message_store.get = (msg_id) => {
assert.equal(msg_id, message.id);
return message;
};
submessage.handle_event(event);
assert.deepEqual(args, {
sender_id: 99,
message_id: 42,
data: 'some_data',
});
assert.deepEqual(message.submessages[0], event);
});