Files
trx-rs/src/trx-client/trx-frontend/trx-frontend-http/frontend/tests/background-decode.test.mjs
T
sjg 5e9dae02c7
CI / test (push) Successful in 8m12s
CI / frontend (push) Successful in 4m15s
CI / reuse (push) Successful in 5s
CI / lint (pull_request) Successful in 2m24s
CI / test (pull_request) Successful in 9m6s
CI / frontend (pull_request) Successful in 5m17s
CI / reuse (pull_request) Successful in 5s
CI / lint (push) Successful in 2m26s
Complete managed account lifecycle
2026-08-11 07:49:53 +02:00

50 lines
1.5 KiB
JavaScript

// SPDX-FileCopyrightText: 2026 Stan Grams <sjg@haxx.space>
//
// SPDX-License-Identifier: GPL-2.0-or-later
import assert from "node:assert/strict";
import test from "node:test";
import vm from "node:vm";
import { createHost } from "./host-fixture.mjs";
import { bundleEntry } from "./bundle-entry.mjs";
test("background decode loads configuration for the explicitly selected rig", async () => {
const requested = [];
const window = {
...createHost(),
decoderRegistry: [],
trxUi: { confirm: async () => true },
};
const context = vm.createContext({
window,
document: { getElementById: () => null },
fetch: async (url) => {
requested.push(url);
return {
ok: true,
json: async () => url === "/bookmarks"
? []
: url.endsWith("/status")
? { entries: [] }
: { remote: "rig/a", enabled: false, bookmark_ids: [] },
};
},
setInterval: () => 1,
clearInterval() {},
setTimeout,
URL,
Set,
Error,
console,
});
const source = await bundleEntry(new URL("../src/plugins/background-decode.ts", import.meta.url));
new vm.Script(source).runInContext(context);
window.trx.modules.backgroundDecode.initialize("rig/a", ["administrator"]);
await new Promise((resolve) => setTimeout(resolve, 0));
assert.ok(requested.includes("/background-decode/rig%2Fa"));
assert.ok(requested.includes("/bookmarks"));
assert.ok(requested.includes("/background-decode/rig%2Fa/status"));
assert.equal(window.initBackgroundDecode, undefined);
});