From b252717f6b4480555aa4a237753e6b40911a8e2a Mon Sep 17 00:00:00 2001 From: Stan Grams Date: Mon, 3 Aug 2026 17:46:52 +0200 Subject: [PATCH] [test](trx-frontend-http): serve a realistic decoder registry to the smoke test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The fixture answered /decoders with an empty list, which hid most of the application from the only test that runs it in a browser. The decoder sub-tabs, their panels, the decode toggles and the bookmark decoder checkboxes are all built from that registry, so the run exercised three of thirteen sub-tabs and none of the decoder UI. Finding this needed route interception, because nothing in the suite could see it. Serve eleven decoders covering the modes the real registry spans. The run now builds 13 sub-tabs and 11 bookmark decoder checkboxes — the same checkboxes whose construction a recent fix changed without any test reaching them — and still reports no runtime errors. It also makes an existing fault observable: at 1100px the decoder sub-tab bar hides 195px of itself with no scrollbar or fade, the same silent truncation the top strip had. No assertion for it here, since that would fail until the truncation is fixed. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01GdyUjuXejCEfiub675z6cz Signed-off-by: Stan Grams --- .../frontend/tests/browser-smoke.mjs | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/trx-client/trx-frontend/trx-frontend-http/frontend/tests/browser-smoke.mjs b/src/trx-client/trx-frontend/trx-frontend-http/frontend/tests/browser-smoke.mjs index 560f7465..766a9400 100644 --- a/src/trx-client/trx-frontend/trx-frontend-http/frontend/tests/browser-smoke.mjs +++ b/src/trx-client/trx-frontend/trx-frontend-http/frontend/tests/browser-smoke.mjs @@ -30,9 +30,28 @@ const rigItems = ["rig-a", "rig-b"].map((remote) => ({ const rigsResponse = { rigs: rigItems, active_remote: "rig-a" }; const selectedRigs = []; +// A realistic decoder registry. Serving an empty one hid most of the +// application from this test: the decoder sub-tabs, their panels, the decode +// toggles and the bookmark decoder checkboxes are all built from it, so with +// no decoders only three of thirteen sub-tabs existed and none of the decoder +// UI was ever constructed. +const decoderRegistry = [ + { id: "ft8", label: "FT8", activation: "toggle", active_modes: ["USB"] }, + { id: "ft4", label: "FT4", activation: "toggle", active_modes: ["USB"] }, + { id: "ft2", label: "FT2", activation: "toggle", active_modes: ["USB"] }, + { id: "wspr", label: "WSPR", activation: "toggle", active_modes: ["USB"] }, + { id: "cw", label: "CW", activation: "toggle", active_modes: ["CW", "CWR"] }, + { id: "sat", label: "SAT", activation: "toggle", active_modes: ["FM"] }, + { id: "wefax", label: "WEFAX", activation: "toggle", active_modes: ["USB"] }, + { id: "ais", label: "AIS", activation: "toggle", active_modes: ["FM"] }, + { id: "aprs", label: "APRS", activation: "toggle", active_modes: ["FM"] }, + { id: "hf-aprs", label: "HF APRS", activation: "toggle", active_modes: ["USB"] }, + { id: "vdes", label: "VDES", activation: "toggle", active_modes: ["FM"] }, +].map((decoder) => ({ ...decoder, background_decode: false, bookmark_selectable: true })); + const jsonRoutes = new Map([ ["/auth/session", { authenticated: true, role: "control", auth_disabled: true }], - ["/decoders", []], + ["/decoders", decoderRegistry], ["/rigs", rigsResponse], ["/status", { info: {