diff --git a/web/tests/lib/index.cjs b/web/tests/lib/index.cjs index 3cb5747dae..a3df553e6f 100644 --- a/web/tests/lib/index.cjs +++ b/web/tests/lib/index.cjs @@ -42,11 +42,6 @@ require("@babel/register")({ root: path.resolve(__dirname, "../.."), }); -// Create a helper function to avoid sneaky delays in tests. -function immediate(f) { - return () => f(); -} - // Find the files we need to run. const files = process.argv.slice(2); assert.notEqual(files.length, 0, "No tests found"); @@ -109,8 +104,6 @@ process.exitCode = 1; window.location.href = "http://zulip.zulipdev.com/#"; namespace.set_global("localStorage", localStorage); ls_container.clear(); - _.throttle = immediate; - _.debounce = immediate; zpage_billing_params.reset(); zpage_params.reset(); diff --git a/web/tests/message_flags.test.cjs b/web/tests/message_flags.test.cjs index b855a5f6e0..f67346fe20 100644 --- a/web/tests/message_flags.test.cjs +++ b/web/tests/message_flags.test.cjs @@ -2,7 +2,7 @@ const assert = require("node:assert/strict"); -const {mock_esm, set_global, with_overrides, zrequire} = require("./lib/namespace.cjs"); +const {clock, mock_esm, set_global, with_overrides, zrequire} = require("./lib/namespace.cjs"); const {run_test} = require("./lib/test.cjs"); const channel = mock_esm("../src/channel"); @@ -193,6 +193,7 @@ run_test("read", ({override}) => { messages: [1, 2, 3, 4, 5], }; channel_post_opts.success(success_response_data); + clock.runAll(); assert.deepEqual(channel_post_opts, { url: "/json/messages/flags", data: { @@ -231,31 +232,17 @@ run_test("read", ({override}) => { }); // Messages still not acked yet - const events = {}; - const stub_delay = 100; - function set_timeout(f, delay) { - assert.equal(delay, stub_delay); - events.f = f; - events.timer_set = true; - return; - } - set_global("setTimeout", set_timeout); // Mock successful flagging of ids success_response_data = { messages: [3, 4, 5, 6, 7], }; channel_post_opts.success(success_response_data); - assert.ok(events.timer_set); + clock.tick(1100); // Mark them non-local local_msg_1.locally_echoed = false; local_msg_2.locally_echoed = false; - - // Mock successful flagging of ids - success_response_data = { - messages: [3, 4, 5, 6, 7], - }; - channel_post_opts.success(success_response_data); + clock.runAll(); // Former locally echoed messages flagging retried assert.deepEqual(channel_post_opts, { @@ -278,6 +265,8 @@ run_test("read", ({override}) => { flag: "read", }, }); + + clock.reset(); }); run_test("read_empty_data", ({override}) => { diff --git a/web/tests/user_search.test.cjs b/web/tests/user_search.test.cjs index 088d966b71..262db80a8f 100644 --- a/web/tests/user_search.test.cjs +++ b/web/tests/user_search.test.cjs @@ -6,7 +6,7 @@ const {make_realm} = require("./lib/example_realm.cjs"); const {make_user} = require("./lib/example_user.cjs"); const {make_message_list} = require("./lib/message_list.cjs"); const {mock_channel_get} = require("./lib/mock_channel.cjs"); -const {set_global, mock_esm, zrequire} = require("./lib/namespace.cjs"); +const {clock, mock_esm, zrequire} = require("./lib/namespace.cjs"); const {run_test, noop} = require("./lib/test.cjs"); const $ = require("./lib/zjquery.cjs"); @@ -30,12 +30,6 @@ mock_esm("../src/buddy_list", { buddy_list: fake_buddy_list, }); -function mock_setTimeout() { - set_global("setTimeout", (func) => { - func(); - }); -} - const popovers = mock_esm("../src/popovers"); const presence = mock_esm("../src/presence"); const sidebar_ui = mock_esm("../src/sidebar_ui"); @@ -93,6 +87,7 @@ function test(label, f) { function set_input_val(val) { $("input.user-list-filter").val(val); $("input.user-list-filter").trigger("input"); + clock.runAll(); } function stub_buddy_list_empty_list_message_lengths() { @@ -199,7 +194,6 @@ test("fetch on search", async ({override}) => { test("blur search right", ({override}) => { override(sidebar_ui, "show_userlist_sidebar", noop); override(popovers, "hide_all", noop); - mock_setTimeout(); $("input.user-list-filter").closest = (selector) => { assert.equal(selector, ".app-main [class^='column-']"); @@ -209,13 +203,13 @@ test("blur search right", ({override}) => { $("input.user-list-filter").trigger("blur"); assert.equal($("input.user-list-filter").is_focused(), false); activity_ui.initiate_search(); + clock.runAll(); assert.equal($("input.user-list-filter").is_focused(), true); }); test("blur search left", ({override}) => { override(sidebar_ui, "show_streamlist_sidebar", noop); override(popovers, "hide_all", noop); - mock_setTimeout(); $("input.user-list-filter").closest = (selector) => { assert.equal(selector, ".app-main [class^='column-']"); @@ -225,6 +219,7 @@ test("blur search left", ({override}) => { $("input.user-list-filter").trigger("blur"); assert.equal($("input.user-list-filter").is_focused(), false); activity_ui.initiate_search(); + clock.runAll(); assert.equal($("input.user-list-filter").is_focused(), true); });