chore: Fix types in tests 29/N.

This commit is contained in:
cpojer
2026-02-17 14:32:43 +09:00
parent 03e6acd051
commit ecf1c955a1
12 changed files with 67 additions and 35 deletions

View File

@@ -49,7 +49,7 @@ describe("fetchBrowserJson loopback auth", () => {
});
it("adds bearer auth for loopback absolute HTTP URLs", async () => {
const fetchMock = vi.fn(
const fetchMock = vi.fn<(input: RequestInfo | URL, init?: RequestInit) => Promise<Response>>(
async () =>
new Response(JSON.stringify({ ok: true }), {
status: 200,
@@ -61,13 +61,13 @@ describe("fetchBrowserJson loopback auth", () => {
const res = await fetchBrowserJson<{ ok: boolean }>("http://127.0.0.1:18888/");
expect(res.ok).toBe(true);
const init = fetchMock.mock.calls[0]?.[1] as RequestInit;
const init = fetchMock.mock.calls[0]?.[1];
const headers = new Headers(init?.headers);
expect(headers.get("authorization")).toBe("Bearer loopback-token");
});
it("does not inject auth for non-loopback absolute URLs", async () => {
const fetchMock = vi.fn(
const fetchMock = vi.fn<(input: RequestInfo | URL, init?: RequestInit) => Promise<Response>>(
async () =>
new Response(JSON.stringify({ ok: true }), {
status: 200,
@@ -78,13 +78,13 @@ describe("fetchBrowserJson loopback auth", () => {
await fetchBrowserJson<{ ok: boolean }>("http://example.com/");
const init = fetchMock.mock.calls[0]?.[1] as RequestInit;
const init = fetchMock.mock.calls[0]?.[1];
const headers = new Headers(init?.headers);
expect(headers.get("authorization")).toBeNull();
});
it("keeps caller-supplied auth header", async () => {
const fetchMock = vi.fn(
const fetchMock = vi.fn<(input: RequestInfo | URL, init?: RequestInit) => Promise<Response>>(
async () =>
new Response(JSON.stringify({ ok: true }), {
status: 200,
@@ -99,7 +99,7 @@ describe("fetchBrowserJson loopback auth", () => {
},
});
const init = fetchMock.mock.calls[0]?.[1] as RequestInit;
const init = fetchMock.mock.calls[0]?.[1];
const headers = new Headers(init?.headers);
expect(headers.get("authorization")).toBe("Bearer caller-token");
});

View File

@@ -51,7 +51,7 @@ describe("pw-tools-core", () => {
});
const res = await p;
const outPath = vi.mocked(saveAs).mock.calls[0]?.[0];
const outPath = (vi.mocked(saveAs).mock.calls as unknown as Array<[string]>)[0]?.[0];
return { res, outPath };
}

View File

@@ -57,7 +57,7 @@ describe("server-context hot-reload profiles", () => {
const resolved = resolveBrowserConfig(cfg.browser, cfg);
// Verify cache is primed (without desktop)
expect(cfg.browser.profiles.desktop).toBeUndefined();
expect(cfg.browser?.profiles?.desktop).toBeUndefined();
const state = {
server: null,
port: 18791,
@@ -79,7 +79,7 @@ describe("server-context hot-reload profiles", () => {
// 3. Verify without clearConfigCache, loadConfig() still returns stale cached value
const staleCfg = loadConfig();
expect(staleCfg.browser.profiles.desktop).toBeUndefined(); // Cache is stale!
expect(staleCfg.browser?.profiles?.desktop).toBeUndefined(); // Cache is stale!
// 4. Hot-reload should read fresh config for the lookup (createConfigIO().loadConfig()),
// without flushing the global loadConfig cache.
@@ -97,7 +97,7 @@ describe("server-context hot-reload profiles", () => {
// 6. Verify GLOBAL cache was NOT cleared - subsequent simple loadConfig() still sees STALE value
// This confirms the fix: we read fresh config for the specific profile lookup without flushing the global cache
const stillStaleCfg = loadConfig();
expect(stillStaleCfg.browser.profiles.desktop).toBeUndefined();
expect(stillStaleCfg.browser?.profiles?.desktop).toBeUndefined();
});
it("forProfile still throws for profiles that don't exist in fresh config", async () => {

View File

@@ -27,6 +27,8 @@ function makeState(
cdpIsLoopback: profile !== "remote",
remoteCdpTimeoutMs: 1500,
remoteCdpHandshakeTimeoutMs: 3000,
evaluateEnabled: false,
extraArgs: [],
color: "#FF4500",
headless: true,
noSandbox: false,
@@ -62,7 +64,7 @@ describe("browser server-context remote profile tab operations", () => {
listPagesViaPlaywright,
createPageViaPlaywright,
closePageByTargetIdViaPlaywright,
} as Awaited<ReturnType<typeof pwAiModule.getPwAiModule>>);
} as unknown as Awaited<ReturnType<typeof pwAiModule.getPwAiModule>>);
const fetchMock = vi.fn(async () => {
throw new Error("unexpected fetch");
@@ -127,7 +129,7 @@ describe("browser server-context remote profile tab operations", () => {
closePageByTargetIdViaPlaywright: vi.fn(async () => {
throw new Error("unexpected close");
}),
} as Awaited<ReturnType<typeof pwAiModule.getPwAiModule>>);
} as unknown as Awaited<ReturnType<typeof pwAiModule.getPwAiModule>>);
const fetchMock = vi.fn(async () => {
throw new Error("unexpected fetch");
@@ -154,7 +156,7 @@ describe("browser server-context remote profile tab operations", () => {
vi.spyOn(pwAiModule, "getPwAiModule").mockResolvedValue({
listPagesViaPlaywright,
focusPageByTargetIdViaPlaywright,
} as Awaited<ReturnType<typeof pwAiModule.getPwAiModule>>);
} as unknown as Awaited<ReturnType<typeof pwAiModule.getPwAiModule>>);
const fetchMock = vi.fn(async () => {
throw new Error("unexpected fetch");
@@ -180,7 +182,7 @@ describe("browser server-context remote profile tab operations", () => {
listPagesViaPlaywright: vi.fn(async () => {
throw new Error("boom");
}),
} as Awaited<ReturnType<typeof pwAiModule.getPwAiModule>>);
} as unknown as Awaited<ReturnType<typeof pwAiModule.getPwAiModule>>);
const fetchMock = vi.fn(async () => {
throw new Error("unexpected fetch");