diff --git a/extensions/browser/src/browser/cdp.test.ts b/extensions/browser/src/browser/cdp.test.ts index 3832900dbce..7c0accb7bd3 100644 --- a/extensions/browser/src/browser/cdp.test.ts +++ b/extensions/browser/src/browser/cdp.test.ts @@ -3,7 +3,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { type WebSocket, WebSocketServer } from "ws"; import { SsrFBlockedError } from "../infra/net/ssrf.js"; import { rawDataToString } from "../infra/ws.js"; -import "./browser-security-runtime.test-helper.js"; +import "../../test-support/browser-security-runtime.mock.js"; import { isDirectCdpWebSocketEndpoint, isWebSocketUrl } from "./cdp.helpers.js"; import { createTargetViaCdp, evaluateJavaScript, normalizeCdpWsUrl, snapshotAria } from "./cdp.js"; import { parseHttpUrl } from "./config.js"; diff --git a/extensions/browser/src/browser/client-fetch.loopback-auth.test.ts b/extensions/browser/src/browser/client-fetch.loopback-auth.test.ts index fb7aa15ae14..1940a2ff07c 100644 --- a/extensions/browser/src/browser/client-fetch.loopback-auth.test.ts +++ b/extensions/browser/src/browser/client-fetch.loopback-auth.test.ts @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; -import "./browser-security-runtime.test-helper.js"; +import "../../test-support/browser-security-runtime.mock.js"; import type { BrowserDispatchResponse } from "./routes/dispatcher.js"; vi.mock("openclaw/plugin-sdk/ssrf-runtime", async () => { diff --git a/extensions/browser/src/browser/pw-session.create-page.navigation-guard.test.ts b/extensions/browser/src/browser/pw-session.create-page.navigation-guard.test.ts index fb4142daad1..0447bd2b962 100644 --- a/extensions/browser/src/browser/pw-session.create-page.navigation-guard.test.ts +++ b/extensions/browser/src/browser/pw-session.create-page.navigation-guard.test.ts @@ -1,7 +1,7 @@ import { chromium } from "playwright-core"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { SsrFBlockedError } from "../infra/net/ssrf.js"; -import "./browser-security-runtime.test-helper.js"; +import "../../test-support/browser-security-runtime.mock.js"; import * as chromeModule from "./chrome.js"; import { BrowserTabNotFoundError } from "./errors.js"; import { InvalidBrowserNavigationUrlError } from "./navigation-guard.js"; diff --git a/extensions/browser/src/browser/pw-tools-core.snapshot.navigate-guard.test.ts b/extensions/browser/src/browser/pw-tools-core.snapshot.navigate-guard.test.ts index 530097481da..3569bae847f 100644 --- a/extensions/browser/src/browser/pw-tools-core.snapshot.navigate-guard.test.ts +++ b/extensions/browser/src/browser/pw-tools-core.snapshot.navigate-guard.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { SsrFBlockedError } from "../infra/net/ssrf.js"; -import "./browser-security-runtime.test-helper.js"; +import "../../test-support/browser-security-runtime.mock.js"; import { InvalidBrowserNavigationUrlError } from "./navigation-guard.js"; import { getPwToolsCoreSessionMocks, diff --git a/extensions/browser/src/browser/server-context.existing-session.test.ts b/extensions/browser/src/browser/server-context.existing-session.test.ts index 21cb01ce12b..bf693e8a82d 100644 --- a/extensions/browser/src/browser/server-context.existing-session.test.ts +++ b/extensions/browser/src/browser/server-context.existing-session.test.ts @@ -1,6 +1,6 @@ import fs from "node:fs"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; -import "./browser-security-runtime.test-helper.js"; +import "../../test-support/browser-security-runtime.mock.js"; import type { BrowserServerState } from "./server-context.js"; vi.mock("./chrome-mcp.js", () => ({ diff --git a/extensions/browser/src/browser/browser-security-runtime.test-helper.ts b/extensions/browser/test-support/browser-security-runtime.mock.ts similarity index 100% rename from extensions/browser/src/browser/browser-security-runtime.test-helper.ts rename to extensions/browser/test-support/browser-security-runtime.mock.ts diff --git a/src/pairing/pairing-store.test.ts b/src/pairing/pairing-store.test.ts index c2eacb43010..7211ab44d40 100644 --- a/src/pairing/pairing-store.test.ts +++ b/src/pairing/pairing-store.test.ts @@ -3,7 +3,16 @@ import fsSync from "node:fs"; import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; +import { + afterAll, + beforeAll, + beforeEach, + describe, + expect, + it, + type MockInstance, + vi, +} from "vitest"; import { resolveOAuthDir } from "../config/paths.js"; import { DEFAULT_ACCOUNT_ID } from "../routing/session-key.js"; import { withEnvAsync } from "../test-utils/env.js"; @@ -64,7 +73,9 @@ import { let fixtureRoot = ""; let caseId = 0; -let randomIntSpy: ReturnType>; +type RandomIntSync = (minOrMax: number, max?: number) => number; + +let randomIntSpy: MockInstance; let nextRandomInt = 0; beforeAll(async () => { @@ -80,7 +91,7 @@ afterAll(async () => { beforeEach(() => { clearPairingAllowFromReadCacheForTest(); nextRandomInt = 0; - randomIntSpy ??= vi.spyOn(crypto, "randomInt") as unknown as typeof randomIntSpy; + randomIntSpy ??= vi.spyOn(crypto, "randomInt") as unknown as MockInstance; setDefaultRandomIntMock(); }); @@ -89,12 +100,12 @@ afterAll(() => { }); function setDefaultRandomIntMock() { - randomIntSpy.mockImplementation(((minOrMax: number, max?: number) => { + randomIntSpy.mockImplementation((minOrMax: number, max?: number) => { const min = max === undefined ? 0 : minOrMax; const upper = max === undefined ? minOrMax : max; const span = Math.max(upper - min, 1); return min + (nextRandomInt++ % span); - }) as typeof crypto.randomInt); + }); } async function withTempStateDir(fn: (stateDir: string) => Promise) { @@ -240,9 +251,7 @@ async function withMockRandomInt(params: { if (params.sequence) { let idx = 0; - randomIntSpy.mockImplementation( - (() => params.sequence?.[idx++] ?? params.fallbackValue ?? 1) as typeof crypto.randomInt, - ); + randomIntSpy.mockImplementation(() => params.sequence?.[idx++] ?? params.fallbackValue ?? 1); } await params.run();