feat: make playwright optional
CI / verify (pull_request) Successful in 8s

This commit is contained in:
2026-09-15 10:18:43 +02:00
parent 1bc5c329a8
commit f6cae21bfa
8 changed files with 93 additions and 14 deletions
+18 -3
View File
@@ -442,7 +442,13 @@ test("playwright MCP prefers direct MCP, uses npx for Playwright, and preserves
await writeFile(executable, "#!/usr/bin/env node\n");
await chmod(executable, 0o755);
const local = await host(allModels, { provider: "test" }, {}, [], localProject);
const local = await host(
allModels,
{ provider: "test", playwright: true },
{},
[],
localProject,
);
expect(local.mcpServers.get("playwright")).toEqual({
type: "local",
command: [executable],
@@ -475,7 +481,13 @@ test("playwright MCP prefers direct MCP, uses npx for Playwright, and preserves
);
await writeFile(ordinaryExecutable, "#!/usr/bin/env node\n");
await chmod(ordinaryExecutable, 0o755);
const ordinary = await host(allModels, { provider: "test" }, {}, [], ordinaryProject);
const ordinary = await host(
allModels,
{ provider: "test", playwright: true },
{},
[],
ordinaryProject,
);
expect(ordinary.mcpServers.get("playwright")?.command).toEqual([
"npx",
"-y",
@@ -534,7 +546,7 @@ test("playwright MCP prefers direct MCP, uses npx for Playwright, and preserves
await chmod(fakePlaywright, 0o755);
expect((await playwrightMcpCommand(globalProject, ordinaryBin))[0]).toBe("docker");
const fallback = await host();
const fallback = await host(allModels, { provider: "test", playwright: true });
expect(fallback.mcpServers.get("playwright")).toEqual({
type: "local",
command: ["docker", "run", "-i", "--rm", "--init", "mcr.microsoft.com/playwright/mcp"],
@@ -561,6 +573,9 @@ test("playwright MCP prefers direct MCP, uses npx for Playwright, and preserves
timeout: { startup: 12_345 },
});
expect(existing.mcpServers.get("docs")?.codemode).toBe(true);
const disabled = await host();
expect(disabled.mcpServers.has("playwright")).toBe(false);
} finally {
if (originalPath === undefined) delete process.env.PATH;
else process.env.PATH = originalPath;