Files
zulip/frontend_tests/node_tests/settings_muting.js
Steve Howell b994889315 node tests: Just set i18n every time.
Explicitly stubbing i18n in 48 different files
is mostly busy work at this point, and it doesn't
provide much signal, since often it's invoked
only to satisfy transitive dependencies.
2020-02-28 17:11:24 -08:00

64 lines
1.6 KiB
JavaScript

set_global('$', global.make_zjquery());
zrequire('settings_muting');
zrequire('stream_data');
zrequire('muting');
set_global('muting_ui', {});
const noop = function () {};
const frontend = {
stream_id: 101,
name: 'frontend',
};
stream_data.add_sub(frontend);
run_test('settings', () => {
muting.add_muted_topic(frontend.stream_id, 'js');
let set_up_ui_called = false;
muting_ui.set_up_muted_topics_ui = function (opts) {
assert.deepEqual(opts, [[frontend.stream_id, 'js']]);
set_up_ui_called = true;
};
settings_muting.set_up();
const click_handler = $('body').get_on_handler('click', '.settings-unmute-topic');
assert.equal(typeof click_handler, 'function');
const event = {
stopImmediatePropagation: noop,
};
const fake_this = $.create('fake.settings-unmute-topic');
const tr_html = $('tr[data-topic="js"]');
fake_this.closest = function (opts) {
assert.equal(opts, 'tr');
return tr_html;
};
let data_called = 0;
tr_html.attr = function (opts) {
if (opts === 'data-stream-id') {
data_called += 1;
return frontend.stream_id;
}
if (opts === 'data-topic') {
data_called += 1;
return 'js';
}
};
let unmute_called = false;
muting_ui.unmute = function (stream_id, topic) {
assert.equal(stream_id, frontend.stream_id);
assert.equal(topic, 'js');
unmute_called = true;
};
click_handler.call(fake_this, event);
assert(unmute_called);
assert(set_up_ui_called);
assert.equal(data_called, 2);
});