node tests: Clean up mock_module calls.

This is a deceptively ugly diff.  It makes
the actual code way more tidy.

I basically inlined some calls to mock_module
and put some statements in lexical order.
This commit is contained in:
Steve Howell
2021-03-07 12:57:14 +00:00
committed by Steve Howell
parent 7cf62cd6b1
commit eea78df688
45 changed files with 345 additions and 496 deletions

View File

@@ -23,53 +23,38 @@ const _document = {
},
};
const channel = {};
const _keydown_util = {
handle: (opts) => {
filter_key_handlers = opts.handlers;
},
};
const compose_state = {};
const _scroll_util = {
scroll_element_into_container: () => {},
};
const _pm_list = {
update_private_messages: () => {},
};
const _popovers = {
hide_all_except_sidebars() {},
hide_all() {},
show_userlist_sidebar() {},
};
const _stream_popover = {
show_streamlist_sidebar() {},
};
const _resize = {
resize_sidebars: () => {},
resize_page_components: () => {},
};
const compose_state = mock_module("compose_state");
const channel = mock_module("channel");
mock_module("padded_widget", {
update_padding: () => {},
});
mock_module("channel", channel);
mock_module("compose_state", compose_state);
mock_module("keydown_util", _keydown_util);
mock_module("pm_list", _pm_list);
mock_module("popovers", _popovers);
mock_module("resize", _resize);
mock_module("scroll_util", _scroll_util);
mock_module("keydown_util", {
handle: (opts) => {
filter_key_handlers = opts.handlers;
},
});
mock_module("pm_list", {
update_private_messages: () => {},
});
mock_module("popovers", {
hide_all_except_sidebars() {},
hide_all() {},
show_userlist_sidebar() {},
});
mock_module("resize", {
resize_sidebars: () => {},
resize_page_components: () => {},
});
mock_module("scroll_util", {
scroll_element_into_container: () => {},
});
mock_module("server_events", {
check_for_unsuspend() {},
});
mock_module("stream_popover", _stream_popover);
mock_module("stream_popover", {
show_streamlist_sidebar() {},
});
set_global("document", _document);
const huddle_data = zrequire("huddle_data");

View File

@@ -7,11 +7,9 @@ const {mock_module, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const $ = require("../zjsunit/zjquery");
const channel = {};
const channel = mock_module("channel");
mock_module("channel", channel);
const alert_words = zrequire("alert_words");
const alert_words_ui = zrequire("alert_words_ui");
alert_words.initialize({

View File

@@ -13,13 +13,13 @@ const template = fs.readFileSync("templates/corporate/billing.html", "utf-8");
const dom = new JSDOM(template, {pretendToBeVisual: true});
const document = dom.window.document;
const helpers = {
set_tab: () => {},
};
const StripeCheckout = set_global("StripeCheckout", {
configure: () => {},
});
mock_module("billing/helpers", helpers);
const helpers = mock_module("billing/helpers", {
set_tab: () => {},
});
run_test("initialize", (override) => {
let token_func;

View File

@@ -5,11 +5,9 @@ const {strict: assert} = require("assert");
const {mock_module, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const _settings_bots = {
mock_module("settings_bots", {
render_bots: () => {},
};
mock_module("settings_bots", _settings_bots);
});
const bot_data = zrequire("bot_data");
const people = zrequire("people");

View File

@@ -9,11 +9,9 @@ const {run_test} = require("../zjsunit/test");
const page_params = set_global("page_params", {});
const timerender = {};
const timerender = mock_module("timerender");
mock_module("timerender", timerender);
const people = zrequire("people");
const presence = zrequire("presence");
const user_status = zrequire("user_status");
const buddy_data = zrequire("buddy_data");

View File

@@ -7,9 +7,8 @@ const _ = require("lodash");
const {mock_module, set_global, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const reload = {};
const reload = mock_module("reload");
mock_module("reload", reload);
set_global("setTimeout", (f, delay) => {
assert.equal(delay, 0);
f();

View File

@@ -40,43 +40,35 @@ const _document = {
to_$: () => $("document-stub"),
};
const _drafts = {
delete_draft_after_send: noop,
};
const sent_messages = {
start_tracking_message: noop,
};
const _notifications = {
notify_above_composebox: noop,
clear_compose_notifications: noop,
};
const reminder = {
is_deferred_delivery: noop,
};
set_global("document", _document);
const channel = mock_module("channel");
const loading = mock_module("loading");
const local_message = mock_module("local_message");
const markdown = mock_module("markdown");
const page_params = set_global("page_params", {});
const reminder = mock_module("reminder", {
is_deferred_delivery: noop,
});
const resize = mock_module("resize");
const sent_messages = mock_module("sent_messages", {
start_tracking_message: noop,
});
const stream_edit = mock_module("stream_edit");
const subs = mock_module("subs");
const transmit = mock_module("transmit");
mock_module("drafts", _drafts);
mock_module("notifications", _notifications);
mock_module("reminder", reminder);
const ui_util = mock_module("ui_util");
mock_module("drafts", {
delete_draft_after_send: noop,
});
mock_module("notifications", {
notify_above_composebox: noop,
clear_compose_notifications: noop,
});
mock_module("rendered_markdown", {
update_elements: () => {},
});
mock_module("sent_messages", sent_messages);
set_global("navigator", _navigator);
const ui_util = {};
mock_module("ui_util", ui_util);
// Setting these up so that we can test that links to uploads within messages are
// automatically converted to server relative links.

View File

@@ -15,36 +15,27 @@ set_global("document", {
to_$: () => $("document-stub"),
});
const compose_pm_pill = {};
mock_module("compose_pm_pill", compose_pm_pill);
const hash_util = {};
mock_module("hash_util", hash_util);
const channel = mock_module("channel");
const compose_fade = mock_module("compose_fade", {
clear_compose: noop,
});
const compose_pm_pill = mock_module("compose_pm_pill");
const hash_util = mock_module("hash_util");
const narrow_state = mock_module("narrow_state", {
set_compose_defaults: noop,
});
mock_module("notifications", {
clear_compose_notifications: noop,
});
mock_module("reload_state", {
is_in_progress: () => false,
});
const compose_fade = {
clear_compose: noop,
};
mock_module("compose_fade", compose_fade);
mock_module("drafts", {
update_draft: noop,
});
const narrow_state = {
set_compose_defaults: noop,
};
mock_module("common", {
status_classes: "status_classes",
});
mock_module("narrow_state", narrow_state);
mock_module("unread_ops", {
notify_server_message_read: noop,
});
@@ -54,9 +45,6 @@ set_global("current_msg_list", {
},
});
const channel = {};
mock_module("channel", channel);
const people = zrequire("people");
const compose_ui = zrequire("compose_ui");

View File

@@ -5,9 +5,8 @@ const {strict: assert} = require("assert");
const {mock_module, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const compose_pm_pill = {};
const compose_pm_pill = mock_module("compose_pm_pill");
mock_module("compose_pm_pill", compose_pm_pill);
const compose_state = zrequire("compose_state");
run_test("private_message_recipient", (override) => {

View File

@@ -8,13 +8,12 @@ const $ = require("../zjsunit/zjquery");
const events = require("./lib/events");
const resize = {
watch_manual_resize() {},
};
const channel = mock_module("channel");
const page_params = set_global("page_params", {});
const upload = mock_module("upload");
mock_module("resize", resize);
mock_module("resize", {
watch_manual_resize() {},
});
set_global("csrf_token", "fake-csrf-token");
set_global("document", {
execCommand() {

View File

@@ -8,22 +8,17 @@ const $ = require("../zjsunit/zjquery");
const noop = () => {};
const stream_topic_history = {};
mock_module("stream_topic_history", stream_topic_history);
const message_store = {
user_ids: () => [],
};
const channel = mock_module("channel");
const page_params = set_global("page_params", {});
mock_module("message_store", message_store);
const compose = {
const compose = mock_module("compose", {
finish: noop,
};
});
const message_store = mock_module("message_store", {
user_ids: () => [],
});
const stream_topic_history = mock_module("stream_topic_history");
const page_params = set_global("page_params", {});
mock_module("compose", compose);
let autosize_called;
mock_module("compose_ui", {

View File

@@ -8,17 +8,15 @@ const {JSDOM} = require("jsdom");
const {mock_module, set_global, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
set_global("page_params", {
development_environment: true,
});
const compose_ui = {};
mock_module("compose_ui", compose_ui);
const {window} = new JSDOM("<!DOCTYPE html><p>Hello world</p>");
const {DOMParser, document} = window;
const $ = set_global("$", jquery(window));
const compose_ui = mock_module("compose_ui");
set_global("page_params", {
development_environment: true,
});
set_global("DOMParser", DOMParser);
set_global("document", document);

View File

@@ -57,13 +57,11 @@ const typing_events = mock_module("typing_events");
const ui = mock_module("ui");
const unread_ops = mock_module("unread_ops");
const user_events = mock_module("user_events");
const user_groups = mock_module("user_groups");
mock_module("compose");
set_global("current_msg_list", {});
set_global("home_msg_list", {});
const user_groups = {};
mock_module("user_groups", user_groups);
// page_params is highly coupled to dispatching now
const page_params = set_global("page_params", {

View File

@@ -12,26 +12,19 @@ const event_fixtures = events.fixtures;
const test_user = events.test_user;
const compose_fade = mock_module("compose_fade");
const stream_events = mock_module("stream_events");
const subs = {};
const narrow_state = mock_module("narrow_state");
const overlays = mock_module("overlays");
const page_params = set_global("page_params", {});
const settings_org = mock_module("settings_org");
const settings_streams = mock_module("settings_streams");
mock_module("subs", subs);
const stream_events = mock_module("stream_events");
const stream_list = mock_module("stream_list");
const subs = mock_module("subs");
set_global("current_msg_list", {});
const stream_list = {};
mock_module("stream_list", stream_list);
const peer_data = zrequire("peer_data");
const people = zrequire("people");
const stream_data = zrequire("stream_data");
const server_events_dispatch = zrequire("server_events_dispatch");
const noop = () => {};

View File

@@ -7,10 +7,9 @@ const {run_test} = require("../zjsunit/test");
const $ = require("../zjsunit/zjquery");
const noop = () => {};
const _ListWidget = {
mock_module("list_widget", {
create: () => ({init: noop}),
};
mock_module("list_widget", _ListWidget);
});
const {DropdownListWidget: dropdown_list_widget} = zrequire("dropdown_list_widget");
const setup_zjquery_data = (name) => {

View File

@@ -5,14 +5,13 @@ const {strict: assert} = require("assert");
const {mock_module, set_global, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const ui_report = {
const ui_report = mock_module("ui_report", {
displayed_error: false,
error: () => {
ui_report.displayed_error = true;
},
};
mock_module("ui_report", ui_report);
});
set_global("location", {
protocol: "https:",
host: "example.com",

View File

@@ -12,44 +12,6 @@ const {
const {make_stub} = require("../zjsunit/stub");
const {run_test} = require("../zjsunit/test");
const popovers = {
actions_popped: () => false,
message_info_popped: () => false,
user_sidebar_popped: () => false,
user_info_popped: () => false,
};
mock_module("popovers", popovers);
const overlays = {
is_active: () => false,
settings_open: () => false,
streams_open: () => false,
lightbox_open: () => false,
drafts_open: () => false,
info_overlay_open: () => false,
};
mock_module("overlays", overlays);
mock_module("stream_popover", {
stream_popped: () => false,
topic_popped: () => false,
all_messages_popped: () => false,
starred_messages_popped: () => false,
});
const emoji_picker = {
reactions_popped: () => false,
};
mock_module("emoji_picker", emoji_picker);
mock_module("hotspots", {
is_open: () => false,
});
const gear_menu = {
is_open: () => false,
};
mock_module("gear_menu", gear_menu);
// Important note on these tests:
//
@@ -80,27 +42,55 @@ set_global("document", "document-stub");
const compose_actions = mock_module("compose_actions");
const condense = mock_module("condense");
const drafts = mock_module("drafts");
const hashchange = {
const emoji_picker = mock_module("emoji_picker", {
reactions_popped: () => false,
});
const gear_menu = mock_module("gear_menu", {
is_open: () => false,
});
const hashchange = mock_module("hashchange", {
in_recent_topics_hash: () => false,
};
});
const lightbox = mock_module("lightbox");
const list_util = mock_module("list_util");
const message_edit = mock_module("message_edit");
const muting_ui = mock_module("muting_ui");
const narrow = mock_module("narrow");
const navigate = mock_module("navigate");
const overlays = mock_module("overlays", {
is_active: () => false,
settings_open: () => false,
streams_open: () => false,
lightbox_open: () => false,
drafts_open: () => false,
info_overlay_open: () => false,
});
const popovers = mock_module("popovers", {
actions_popped: () => false,
message_info_popped: () => false,
user_sidebar_popped: () => false,
user_info_popped: () => false,
});
const reactions = mock_module("reactions");
const search = mock_module("search");
const stream_list = mock_module("stream_list");
mock_module("hashchange", hashchange);
const subs = mock_module("subs");
const subs = {};
mock_module("stream_popover", {
stream_popped: () => false,
topic_popped: () => false,
all_messages_popped: () => false,
starred_messages_popped: () => false,
});
mock_module("hotspots", {
is_open: () => false,
});
mock_module("recent_topics", {
is_visible: () => false,
});
mock_module("subs", subs);
set_global("current_msg_list", {
empty() {
return false;

View File

@@ -9,14 +9,10 @@ const {run_test} = require("../zjsunit/test");
// The ListWidget library allows you to insert objects
// that are either jQuery, Element, or just raw HTML
// strings. We initially test with raw strings.
const ui = mock_module("ui");
set_global("Element", () => {});
set_global("jQuery", "stub");
function Element() {
return {};
}
set_global("Element", Element);
const ui = {};
mock_module("ui", ui);
// We only need very simple jQuery wrappers for when the
// "real" code wraps html or sets up click handlers.

View File

@@ -12,15 +12,12 @@ const notifications = mock_module("notifications");
const page_params = set_global("page_params", {});
const pm_list = mock_module("pm_list");
const stream_list = mock_module("stream_list");
const unread_ui = mock_module("unread_ui");
set_global("current_msg_list", {});
const unread_ui = {};
mock_module("unread_ui", unread_ui);
const message_events = zrequire("message_events");
const message_store = zrequire("message_store");
const people = zrequire("people");
const message_events = zrequire("message_events");
const message_store = zrequire("message_store");
const stream_data = zrequire("stream_data");
const stream_topic_history = zrequire("stream_topic_history");
const unread = zrequire("unread");

View File

@@ -33,6 +33,9 @@ const message_store = mock_module("message_store");
const message_util = mock_module("message_util");
const pm_list = mock_module("pm_list");
const server_events = mock_module("server_events");
const stream_list = mock_module("stream_list", {
maybe_scroll_narrow_into_view: () => {},
});
mock_module("message_scroll", {
show_loading_older: noop,
hide_loading_older: noop,
@@ -42,11 +45,6 @@ mock_module("message_scroll", {
});
set_global("document", "document-stub");
const stream_list = {
maybe_scroll_narrow_into_view: () => {},
};
mock_module("stream_list", stream_list);
const message_fetch = zrequire("message_fetch");
const {Filter} = zrequire("../js/filter");

View File

@@ -5,16 +5,15 @@ const {strict: assert} = require("assert");
const {mock_module, set_global, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const channel = mock_module("channel");
const ui = mock_module("ui");
mock_module("starred_messages", {
add: () => {},
remove: () => {},
});
const ui = mock_module("ui");
const channel = {};
mock_module("channel", channel);
const message_flags = zrequire("message_flags");
run_test("starred", () => {

View File

@@ -14,14 +14,11 @@ const compose = mock_module("compose");
const compose_actions = mock_module("compose_actions");
const hashchange = mock_module("hashchange");
const message_fetch = mock_module("message_fetch");
set_global("current_msg_list", {});
set_global("home_msg_list", {});
const message_list = {
const message_list = mock_module("message_list", {
set_narrowed(value) {
message_list.narrowed = value;
},
};
});
const message_scroll = mock_module("message_scroll");
const message_view_header = mock_module("message_view_header");
const notifications = mock_module("notifications");
@@ -31,11 +28,12 @@ const top_left_corner = mock_module("top_left_corner");
const typing_events = mock_module("typing_events");
const ui_util = mock_module("ui_util");
const unread_ops = mock_module("unread_ops");
mock_module("message_list", message_list);
mock_module("recent_topics", {
hide: () => {},
is_visible: () => {},
});
set_global("current_msg_list", {});
set_global("home_msg_list", {});
set_global("page_params", {});
//

View File

@@ -5,11 +5,9 @@ const {strict: assert} = require("assert");
const {mock_module, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const message_list = {};
const message_list = mock_module("message_list");
mock_module("message_list", message_list);
const {Filter} = zrequire("../js/filter");
const {MessageListData} = zrequire("../js/message_list_data");
const narrow_state = zrequire("narrow_state");
const narrow = zrequire("narrow");

View File

@@ -5,11 +5,10 @@ const {strict: assert} = require("assert");
const {mock_module, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const reload_state = {
const reload_state = mock_module("reload_state", {
is_in_progress: () => false,
};
});
mock_module("reload_state", reload_state);
const people = zrequire("people");
const me = {

View File

@@ -7,8 +7,13 @@ const {run_test} = require("../zjsunit/test");
const $ = require("../zjsunit/zjquery");
const narrow_state = mock_module("narrow_state");
const pm_list_dom = mock_module("pm_list_dom");
const unread = mock_module("unread");
const unread_ui = mock_module("unread_ui");
const vdom = mock_module("vdom", {
render: () => "fake-dom-for-pm-list",
});
mock_module("stream_popover", {
hide_topic_popover() {},
});
@@ -16,15 +21,7 @@ mock_module("ui", {
get_content_element: (element) => element,
});
const vdom = {
render: () => "fake-dom-for-pm-list",
};
mock_module("vdom", vdom);
const pm_list_dom = {};
mock_module("pm_list_dom", pm_list_dom);
const people = zrequire("people");
const pm_conversations = zrequire("pm_conversations");
const pm_list = zrequire("pm_list");

View File

@@ -9,21 +9,14 @@ const $ = require("../zjsunit/zjquery");
const noop = function () {};
set_global("current_msg_list", {});
set_global("page_params", {
is_admin: false,
realm_email_address_visibility: 3,
custom_profile_fields: [],
});
const rows = {};
const rows = mock_module("rows");
const stream_data = mock_module("stream_data");
mock_module("emoji_picker", {
hide_emoji_popover: noop,
});
mock_module("message_viewport", {
height: () => 500,
});
mock_module("rows", rows);
mock_module("stream_popover", {
hide_stream_popover: noop,
hide_topic_popover: noop,
@@ -32,11 +25,14 @@ mock_module("stream_popover", {
hide_streamlist_sidebar: noop,
});
const stream_data = {};
set_global("current_msg_list", {});
set_global("page_params", {
is_admin: false,
realm_email_address_visibility: 3,
custom_profile_fields: [],
});
mock_module("stream_data", stream_data);
const people = zrequire("people");
const user_status = zrequire("user_status");
const message_edit = zrequire("message_edit");

View File

@@ -5,14 +5,12 @@ const {strict: assert} = require("assert");
const {mock_module, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const server_events = mock_module("server_events");
const reload_state = {
const reload_state = mock_module("reload_state", {
is_in_progress: () => false,
};
});
const server_events = mock_module("server_events");
mock_module("reload_state", reload_state);
const people = zrequire("people");
const presence = zrequire("presence");
const OFFLINE_THRESHOLD_SECS = 140;

View File

@@ -8,19 +8,8 @@ const {make_stub} = require("../zjsunit/stub");
const {run_test} = require("../zjsunit/test");
const $ = require("../zjsunit/zjquery");
set_global("document", "document-stub");
const alice_user_id = 5;
set_global("page_params", {
user_id: alice_user_id,
});
const channel = mock_module("channel");
const emoji_picker = {
hide_emoji_popover() {},
};
mock_module("emoji_picker", emoji_picker);
const message = {
id: 1001,
reactions: [
@@ -52,14 +41,17 @@ const message = {
],
};
const message_store = {
const channel = mock_module("channel");
const emoji_picker = mock_module("emoji_picker", {
hide_emoji_popover() {},
});
const message_store = mock_module("message_store", {
get(message_id) {
assert.equal(message_id, 1001);
return message;
},
};
});
mock_module("message_store", message_store);
set_global("current_msg_list", {
selected_message() {
return {sent_by_me: true};
@@ -71,6 +63,10 @@ set_global("current_msg_list", {
return 42;
},
});
set_global("document", "document-stub");
set_global("page_params", {
user_id: alice_user_id,
});
const emoji_codes = zrequire("../generated/emoji/emoji_codes.json");
const emoji = zrequire("../shared/js/emoji");

View File

@@ -8,20 +8,18 @@ const {run_test} = require("../zjsunit/test");
let next_id = 0;
const messages = [];
mock_module("message_store", {
get: (msg_id) => messages[msg_id - 1],
});
const message_list = {
const message_list = mock_module("message_list", {
all: {
all_messages() {
return messages;
},
},
};
});
mock_module("message_store", {
get: (msg_id) => messages[msg_id - 1],
});
mock_module("message_list", message_list);
const rs = zrequire("recent_senders");
zrequire("message_util.js");
run_test("process_message_for_senders", (override) => {

View File

@@ -8,50 +8,42 @@ const {run_test} = require("../zjsunit/test");
const $ = require("../zjsunit/zjquery");
const noop = () => {};
mock_module("top_left_corner", {
narrow_to_recent_topics: noop,
});
mock_module("stream_list", {
handle_narrow_deactivated: noop,
});
mock_module("compose_actions", {
cancel: noop,
});
mock_module("narrow", {
set_narrow_title: noop,
});
mock_module("message_view_header", {
render_title_area: noop,
});
mock_module("timerender", {
last_seen_status_from_date: () => "Just now",
// Custom Data
const messages = [];
get_full_datetime: () => ({
date: "date",
time: "time",
}),
});
mock_module("unread", {
unread_topic_counter: {
get: (stream_id, topic) => {
if (stream_id === 1 && topic === "topic-1") {
// Only stream1, topic-1 is read.
return 0;
}
return 1;
// sender1 == current user
// sender2 == any other user
const sender1 = 1;
const sender2 = 2;
// New stream
const stream1 = 1;
const stream2 = 2;
const stream3 = 3;
const stream4 = 4;
const stream5 = 5; // Deleted stream
// Topics in the stream, all unread except topic1 & stream1.
const topic1 = "topic-1"; // No Other sender & read.
const topic2 = "topic-2"; // Other sender
const topic3 = "topic-3"; // User not present
const topic4 = "topic-4"; // User not present
const topic5 = "topic-5"; // other sender
const topic6 = "topic-6"; // other sender
const topic7 = "topic-7"; // muted topic
const topic8 = "topic-8";
const topic9 = "topic-9";
const topic10 = "topic-10";
const message_list = mock_module("message_list", {
all: {
all_messages() {
return messages;
},
},
});
mock_module("hash_util", {
by_stream_uri: () => "https://www.example.com",
by_stream_topic_uri: () => "https://www.example.com",
});
mock_module("recent_senders", {
get_topic_recent_senders: () => [1, 2],
});
const ListWidget = {
const ListWidget = mock_module("list_widget", {
modifier: noop,
create: (container, mapped_topic_values, opts) => {
@@ -76,49 +68,28 @@ const ListWidget = {
hard_redraw: noop,
render_item: (item) => ListWidget.modifier(item),
};
});
mock_module("compose_actions", {
cancel: noop,
});
mock_module("drafts", {
update_draft: noop,
});
mock_module("list_widget", ListWidget);
mock_module("hash_util", {
by_stream_uri: () => "https://www.example.com",
const ls_container = new Map();
set_global("localStorage", {
getItem(key) {
return ls_container.get(key);
},
setItem(key, val) {
ls_container.set(key, val);
},
removeItem(key) {
ls_container.delete(key);
},
clear() {
ls_container.clear();
},
by_stream_topic_uri: () => "https://www.example.com",
});
mock_module("narrow", {
set_narrow_title: noop,
});
mock_module("message_store", {
get: (msg_id) => messages[msg_id - 1],
});
mock_module("message_view_header", {
render_title_area: noop,
});
// Custom Data
// New stream
const stream1 = 1;
const stream2 = 2;
const stream3 = 3;
const stream4 = 4;
const stream5 = 5; // Deleted stream
// Topics in the stream, all unread except topic1 & stream1.
const topic1 = "topic-1"; // No Other sender & read.
const topic2 = "topic-2"; // Other sender
const topic3 = "topic-3"; // User not present
const topic4 = "topic-4"; // User not present
const topic5 = "topic-5"; // other sender
const topic6 = "topic-6"; // other sender
const topic7 = "topic-7"; // muted topic
const topic8 = "topic-8";
const topic9 = "topic-9";
const topic10 = "topic-10";
mock_module("muting", {
is_topic_muted: (stream_id, topic) => {
if (stream_id === stream1 && topic === topic7) {
@@ -127,24 +98,8 @@ mock_module("muting", {
return false;
},
});
// sender1 == current user
// sender2 == any other user
const sender1 = 1;
const sender2 = 2;
const messages = [];
const message_list = {
all: {
all_messages() {
return messages;
},
},
};
mock_module("message_list", message_list);
mock_module("message_store", {
get: (msg_id) => messages[msg_id - 1],
mock_module("recent_senders", {
get_topic_recent_senders: () => [1, 2],
});
mock_module("stream_data", {
get_sub_by_id: (stream) => {
@@ -165,6 +120,47 @@ mock_module("stream_data", {
false,
id_is_subscribed: () => true,
});
mock_module("stream_list", {
handle_narrow_deactivated: noop,
});
mock_module("timerender", {
last_seen_status_from_date: () => "Just now",
get_full_datetime: () => ({
date: "date",
time: "time",
}),
});
mock_module("top_left_corner", {
narrow_to_recent_topics: noop,
});
mock_module("unread", {
unread_topic_counter: {
get: (stream_id, topic) => {
if (stream_id === 1 && topic === "topic-1") {
// Only stream1, topic-1 is read.
return 0;
}
return 1;
},
},
});
const ls_container = new Map();
set_global("localStorage", {
getItem(key) {
return ls_container.get(key);
},
setItem(key, val) {
ls_container.set(key, val);
},
removeItem(key) {
ls_container.delete(key);
},
clear() {
ls_container.clear();
},
});
const people = zrequire("people");
const rt = zrequire("recent_topics");

View File

@@ -6,18 +6,14 @@ const {mock_module, set_global, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const $ = require("../zjsunit/zjquery");
set_global("page_params", {
search_pills_enabled: true,
});
const noop = () => {};
const narrow_state = {
filter: () => false,
};
const narrow = mock_module("narrow");
const narrow_state = mock_module("narrow_state", {
filter: () => false,
});
const search_suggestion = mock_module("search_suggestion");
mock_module("narrow_state", narrow_state);
mock_module("search_pill_widget", {
widget: {
getByID: () => true,
@@ -27,6 +23,10 @@ mock_module("ui_util", {
change_tab_to: noop,
place_caret_at_end: noop,
});
set_global("page_params", {
search_pills_enabled: true,
});
set_global("setTimeout", (func) => func());
const search = zrequire("search");

View File

@@ -6,11 +6,9 @@ const {mock_module, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const $ = require("../zjsunit/zjquery");
const muting_ui = {};
const muting_ui = mock_module("muting_ui");
mock_module("muting_ui", muting_ui);
const settings_muting = zrequire("settings_muting");
const stream_data = zrequire("stream_data");
const muting = zrequire("muting");

View File

@@ -23,11 +23,6 @@ const _FormData = function () {
return form_data;
};
const _loading = {
make_indicator: noop,
destroy_indicator: noop,
};
const page_params = set_global("page_params", {
is_admin: false,
realm_domains: [
@@ -38,9 +33,7 @@ const page_params = set_global("page_params", {
});
const realm_icon = mock_module("realm_icon");
const channel = {};
mock_module("channel", channel);
stub_templates((name, data) => {
if (name === "settings/admin_realm_domains_list") {
assert(data.realm_domain.domain);
@@ -49,10 +42,17 @@ stub_templates((name, data) => {
throw new Error(`Unknown template ${name}`);
});
const overlays = {};
const channel = mock_module("channel");
const overlays = mock_module("overlays");
mock_module("overlays", overlays);
const _ui_report = {
mock_module("list_widget", {
create: () => ({init: noop}),
});
mock_module("loading", {
make_indicator: noop,
destroy_indicator: noop,
});
mock_module("ui_report", {
success(msg, elem) {
elem.val(msg);
},
@@ -60,18 +60,11 @@ const _ui_report = {
error(msg, xhr, elem) {
elem.val(msg);
},
};
const _ListWidget = {
create: () => ({init: noop}),
};
});
set_global("csrf_token", "token-stub");
set_global("FormData", _FormData);
set_global("jQuery", _jQuery);
mock_module("list_widget", _ListWidget);
mock_module("loading", _loading);
mock_module("ui_report", _ui_report);
const settings_config = zrequire("settings_config");
const settings_bots = zrequire("settings_bots");

View File

@@ -7,10 +7,9 @@ const {mock_module, set_global, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const $ = require("../zjsunit/zjquery");
const loading = mock_module("loading");
const page_params = set_global("page_params", {});
const loading = {};
mock_module("loading", loading);
const SHORT_TEXT_ID = 1;
const CHOICE_ID = 3;

View File

@@ -9,9 +9,6 @@ const {mock_module, set_global, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const $ = require("../zjsunit/zjquery");
const confirm_dialog = {};
mock_module("confirm_dialog", confirm_dialog);
const noop = () => {};
const pills = {
@@ -21,27 +18,22 @@ const pills = {
let create_item_handler;
const channel = mock_module("channel");
const confirm_dialog = mock_module("confirm_dialog");
const input_pill = mock_module("input_pill");
const typeahead_helper = mock_module("typeahead_helper");
const user_groups = {
const user_groups = mock_module("user_groups", {
get_user_group_from_id: noop,
remove: noop,
add: noop,
};
mock_module("user_groups", user_groups);
const ui_report = {};
});
const ui_report = mock_module("ui_report");
const page_params = set_global("page_params", {});
mock_module("ui_report", ui_report);
const input_pill = {};
mock_module("input_pill", input_pill);
const user_pill = zrequire("user_pill");
const settings_user_groups = zrequire("settings_user_groups");
const settings_config = zrequire("settings_config");
const people = zrequire("people");
const settings_config = zrequire("settings_config");
const settings_user_groups = zrequire("settings_user_groups");
const user_pill = zrequire("user_pill");
function reset_test_setup(pill_container_stub) {
function input_pill_stub(opts) {

View File

@@ -12,6 +12,10 @@ stub_templates(() => noop);
const page_params = set_global("page_params", {});
const typeahead_helper = mock_module("typeahead_helper");
const ui = mock_module("ui", {
get_scroll_element: noop,
});
mock_module("hash_util", {
stream_edit_uri: noop,
by_stream_uri: noop,
@@ -27,16 +31,10 @@ mock_module("stream_color", {
set_colorpicker_color: noop,
});
const ui = {
get_scroll_element: noop,
};
mock_module("ui", ui);
const peer_data = zrequire("peer_data");
const people = zrequire("people");
const stream_edit = zrequire("stream_edit");
const stream_data = zrequire("stream_data");
const stream_edit = zrequire("stream_edit");
const stream_pill = zrequire("stream_pill");
const user_pill = zrequire("user_pill");

View File

@@ -8,14 +8,15 @@ const {run_test} = require("../zjsunit/test");
const $ = require("../zjsunit/zjquery");
const noop = () => {};
const _settings_notifications = {
update_page: () => {},
};
const color_data = mock_module("color_data");
const message_util = mock_module("message_util");
const stream_color = mock_module("stream_color");
const stream_list = mock_module("stream_list");
const stream_muting = mock_module("stream_muting");
const subs = mock_module("subs", {
update_settings_for_subscribed: noop,
});
mock_module("message_list", {
all: {
all_messages() {
@@ -26,22 +27,20 @@ mock_module("message_list", {
mock_module("recent_topics", {
complete_rerender: () => {},
});
mock_module("settings_notifications", _settings_notifications);
mock_module("settings_notifications", {
update_page: () => {},
});
set_global("current_msg_list", {});
const subs = {
update_settings_for_subscribed: noop,
};
mock_module("overlays", {streams_open: () => true});
mock_module("subs", subs);
const {Filter} = zrequire("../js/filter");
const message_view_header = zrequire("message_view_header");
const narrow_state = zrequire("narrow_state");
const peer_data = zrequire("peer_data");
const people = zrequire("people");
const stream_data = zrequire("stream_data");
const stream_events = zrequire("stream_events");
const {Filter} = zrequire("../js/filter");
const narrow_state = zrequire("narrow_state");
const message_view_header = zrequire("message_view_header");
const george = {
email: "george@zulip.com",

View File

@@ -18,9 +18,8 @@ mock_module("resize", {
});
const popovers = mock_module("popovers");
const stream_popover = {};
const stream_popover = mock_module("stream_popover");
mock_module("stream_popover", stream_popover);
const stream_list = zrequire("stream_list");
function expand_sidebar() {

View File

@@ -6,11 +6,9 @@ const {mock_module, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const channel = mock_module("channel");
const message_store = mock_module("message_store");
const widgetize = mock_module("widgetize");
const message_store = {};
mock_module("message_store", message_store);
const submessage = zrequire("submessage");
run_test("get_message_events", () => {

View File

@@ -7,22 +7,20 @@ const {mock_module, set_global, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const $ = require("../zjsunit/zjquery");
const ui = {
const denmark_stream_id = 101;
const ui = mock_module("ui", {
get_content_element: (element) => element,
get_scroll_element: (element) => element,
};
mock_module("ui", ui);
set_global("page_params", {});
const denmark_stream_id = 101;
});
set_global("location", {
hash: `#streams/${denmark_stream_id}/announce`,
});
mock_module("hash_util", {
by_stream_uri: () => {},
});
set_global("page_params", {});
const stream_data = zrequire("stream_data");
const subs = zrequire("subs");

View File

@@ -7,21 +7,19 @@ const _ = require("lodash");
const {mock_module, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const narrow_state = {
topic() {},
};
mock_module("narrow_state", narrow_state);
const muting = {
const muting = mock_module("muting", {
is_topic_muted() {
return false;
},
};
mock_module("muting", muting);
const stream_data = zrequire("stream_data");
});
const narrow_state = mock_module("narrow_state", {
topic() {},
});
const unread = zrequire("unread");
const stream_data = zrequire("stream_data");
const stream_topic_history = zrequire("stream_topic_history");
const topic_list_data = zrequire("topic_list_data");
const unread = zrequire("unread");
const general = {
stream_id: 556,

View File

@@ -11,15 +11,12 @@ const page_params = set_global("page_params", {});
const channel = mock_module("channel");
const reload = mock_module("reload");
const reload_state = mock_module("reload_state");
const sent_messages = {
const sent_messages = mock_module("sent_messages", {
start_tracking_message: noop,
report_server_ack: noop,
};
});
mock_module("sent_messages", sent_messages);
const people = zrequire("people");
const transmit = zrequire("transmit");
run_test("transmit_message_ajax", () => {

View File

@@ -17,31 +17,26 @@ const {run_test} = require("../zjsunit/test");
// structure that the server sends down to us when the app starts. We
// prefer to test with a clean slate.
set_global("page_params", {});
const activity = mock_module("activity");
const channel = mock_module("channel");
const home_msg_list = set_global("home_msg_list", {});
const message_list = mock_module("message_list");
const message_live_update = mock_module("message_live_update");
const message_util = mock_module("message_util");
const message_viewport = mock_module("message_viewport");
const notifications = mock_module("notifications");
const overlays = mock_module("overlays");
const pm_list = mock_module("pm_list");
const resize = mock_module("resize");
const settings_users = mock_module("settings_users");
let stream_list = {};
mock_module("stream_list", stream_list);
let unread_ops = {};
const channel = mock_module("channel");
const message_viewport = mock_module("message_viewport");
const topic_list = mock_module("topic_list");
const unread_ui = mock_module("unread_ui");
mock_module("unread_ops", unread_ops);
const topic_list = {};
let stream_list = mock_module("stream_list");
let unread_ops = mock_module("unread_ops");
set_global("page_params", {});
mock_module("topic_list", topic_list);
// Let's start with testing a function from util.js.
//

View File

@@ -11,17 +11,16 @@ let page_params = set_global("page_params", {
realm_push_notifications_enabled: false,
});
set_global("current_msg_list", {});
set_global("home_msg_list", {});
const message_store = {};
mock_module("message_store", message_store);
const message_store = mock_module("message_store");
const muting = zrequire("muting");
set_global("current_msg_list", {});
set_global("home_msg_list", {});
const {FoldDict} = zrequire("fold_dict");
const people = zrequire("people");
const stream_data = zrequire("stream_data");
const unread = zrequire("unread");
const {FoldDict} = zrequire("fold_dict");
const me = {
email: "me@example.com",

View File

@@ -5,10 +5,27 @@ const {strict: assert} = require("assert");
const {mock_module, set_global, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const message_live_update = mock_module("message_live_update");
const settings_account = mock_module("settings_account", {
update_email() {},
update_full_name() {},
});
mock_module("activity", {
redraw() {},
});
mock_module("compose", {
update_email() {},
});
mock_module("gear_menu", {
update_org_settings_menu_item() {},
});
mock_module("narrow_state", {
update_email() {},
});
mock_module("pm_list", {
update_private_messages() {},
});
mock_module("settings_linkifiers", {
maybe_disable_widgets() {},
});
@@ -25,36 +42,11 @@ mock_module("settings_users", {
update_user_data() {},
});
mock_module("gear_menu", {
update_org_settings_menu_item() {},
});
const page_params = set_global("page_params", {
is_admin: true,
});
mock_module("pm_list", {
update_private_messages() {},
});
mock_module("narrow_state", {
update_email() {},
});
mock_module("compose", {
update_email() {},
});
const settings_account = {
update_email() {},
update_full_name() {},
};
mock_module("settings_account", settings_account);
const message_live_update = {};
mock_module("message_live_update", message_live_update);
const people = zrequire("people");
const settings_config = zrequire("settings_config");
const user_events = zrequire("user_events");