test(browser): tighten relay test watchdog timeouts

This commit is contained in:
Peter Steinberger
2026-02-21 23:03:29 +00:00
parent 1534248169
commit b1c50cc5c0

View File

@@ -9,6 +9,10 @@ import {
} from "./extension-relay.js"; } from "./extension-relay.js";
import { getFreePort } from "./test-port.js"; import { getFreePort } from "./test-port.js";
const RELAY_MESSAGE_TIMEOUT_MS = 2_000;
const RELAY_LIST_MATCH_TIMEOUT_MS = 1_500;
const RELAY_TEST_TIMEOUT_MS = 10_000;
function waitForOpen(ws: WebSocket) { function waitForOpen(ws: WebSocket) {
return new Promise<void>((resolve, reject) => { return new Promise<void>((resolve, reject) => {
ws.once("open", () => resolve()); ws.once("open", () => resolve());
@@ -81,7 +85,7 @@ function createMessageQueue(ws: WebSocket) {
reject(err instanceof Error ? err : new Error(String(err))); reject(err instanceof Error ? err : new Error(String(err)));
}); });
const next = (timeoutMs = 5000) => const next = (timeoutMs = RELAY_MESSAGE_TIMEOUT_MS) =>
new Promise<string>((resolve, reject) => { new Promise<string>((resolve, reject) => {
const existing = queue.shift(); const existing = queue.shift();
if (existing !== undefined) { if (existing !== undefined) {
@@ -103,7 +107,7 @@ function createMessageQueue(ws: WebSocket) {
async function waitForListMatch<T>( async function waitForListMatch<T>(
fetchList: () => Promise<T>, fetchList: () => Promise<T>,
predicate: (value: T) => boolean, predicate: (value: T) => boolean,
timeoutMs = 2000, timeoutMs = RELAY_LIST_MATCH_TIMEOUT_MS,
intervalMs = 50, intervalMs = 50,
): Promise<T> { ): Promise<T> {
let latest: T | undefined; let latest: T | undefined;
@@ -217,7 +221,9 @@ describe("chrome extension relay server", () => {
ext.close(); ext.close();
}); });
it("tracks attached page targets and exposes them via CDP + /json/list", async () => { it(
"tracks attached page targets and exposes them via CDP + /json/list",
async () => {
const port = await getFreePort(); const port = await getFreePort();
cdpUrl = `http://127.0.0.1:${port}`; cdpUrl = `http://127.0.0.1:${port}`;
await ensureChromeExtensionRelayServer({ cdpUrl }); await ensureChromeExtensionRelayServer({ cdpUrl });
@@ -286,7 +292,9 @@ describe("chrome extension relay server", () => {
(list) => (list) =>
list.some( list.some(
(t) => (t) =>
t.id === "t1" && t.url === "https://www.derstandard.at/" && t.title === "DER STANDARD", t.id === "t1" &&
t.url === "https://www.derstandard.at/" &&
t.title === "DER STANDARD",
), ),
); );
expect( expect(
@@ -333,7 +341,9 @@ describe("chrome extension relay server", () => {
cdp.close(); cdp.close();
ext.close(); ext.close();
}, 15_000); },
RELAY_TEST_TIMEOUT_MS,
);
it("rebroadcasts attach when a session id is reused for a new target", async () => { it("rebroadcasts attach when a session id is reused for a new target", async () => {
const port = await getFreePort(); const port = await getFreePort();