Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
64 lines
1.9 KiB
JavaScript
64 lines
1.9 KiB
JavaScript
"use strict";
|
|
|
|
const assert = require("node:assert/strict");
|
|
|
|
/*
|
|
This module is kind of strange, because we don't
|
|
actually test the electron_bridge code, since that
|
|
code is basically a bunch of type declarations.
|
|
|
|
Instead, we test how other modules interact with
|
|
the types.
|
|
|
|
*/
|
|
const {mock_esm, set_global, with_overrides, zrequire} = require("./lib/namespace.cjs");
|
|
const {run_test, noop} = require("./lib/test.cjs");
|
|
|
|
mock_esm("../src/channel", {post: noop});
|
|
const electron_bridge = mock_esm("../src/electron_bridge");
|
|
|
|
set_global("document", {
|
|
hasFocus() {
|
|
return true;
|
|
},
|
|
});
|
|
|
|
const activity = zrequire("activity");
|
|
|
|
run_test("electron_bridge", () => {
|
|
function with_bridge_idle(bridge_idle, f) {
|
|
with_overrides(({override}) => {
|
|
override(electron_bridge, "electron_bridge", {
|
|
get_idle_on_system: () => bridge_idle,
|
|
});
|
|
return f();
|
|
});
|
|
}
|
|
|
|
with_bridge_idle(true, () => {
|
|
activity.mark_client_idle();
|
|
assert.equal(activity.compute_active_status(), "idle");
|
|
activity.mark_client_active();
|
|
assert.equal(activity.compute_active_status(), "idle");
|
|
});
|
|
|
|
with_overrides(({override}) => {
|
|
override(electron_bridge, "electron_bridge", undefined);
|
|
activity.mark_client_idle();
|
|
assert.equal(activity.compute_active_status(), "idle");
|
|
activity.mark_client_active();
|
|
assert.equal(activity.compute_active_status(), "active");
|
|
});
|
|
|
|
with_bridge_idle(false, () => {
|
|
activity.mark_client_idle();
|
|
assert.equal(activity.compute_active_status(), "active");
|
|
activity.mark_client_active();
|
|
assert.equal(activity.compute_active_status(), "active");
|
|
});
|
|
|
|
assert.ok(!activity.received_new_messages);
|
|
activity.set_received_new_messages(true);
|
|
assert.ok(activity.received_new_messages);
|
|
});
|