@@ -58,6 +58,7 @@ import { testing as packageArtifactTesting } from "../../scripts/e2e/parallels/p
|
58 | 58 | import { PhaseRunner } from "../../scripts/e2e/parallels/phase-runner.ts"; |
59 | 59 | import { |
60 | 60 | posixCodexPlatformPackageRepairFunction, |
| 61 | +windowsProviderOnlyPluginIsolationScript, |
61 | 62 | windowsCodexPlatformPackageRepairFunction, |
62 | 63 | } from "../../scripts/e2e/parallels/plugin-isolation.ts"; |
63 | 64 | import { parseArgs as parseWindowsSmokeArgs } from "../../scripts/e2e/parallels/windows-smoke.ts"; |
@@ -407,6 +408,21 @@ describe("Parallels smoke model selection", () => {
|
407 | 408 | expect(windowsRepair).toContain("Repair-MissingCodexPlatformPackage"); |
408 | 409 | }); |
409 | 410 | |
| 411 | +it("keeps Windows provider-only plugin isolation temp scripts per run", () => { |
| 412 | +const script = windowsProviderOnlyPluginIsolationScript({ |
| 413 | +fallbackPluginId: "openai", |
| 414 | +modelId: "openai/gpt-5.5", |
| 415 | +}); |
| 416 | + |
| 417 | +expect(script).toContain("[guid]::NewGuid().ToString('N')"); |
| 418 | +expect(script).toContain("openclaw-parallels-plugin-isolation-"); |
| 419 | +expect(script).not.toContain("'openclaw-parallels-plugin-isolation.cjs'"); |
| 420 | +expect(script).toContain("try {"); |
| 421 | +expect(script).toContain("} finally {"); |
| 422 | +expect(script).toContain("Remove-Item $isolationScriptPath -Force -ErrorAction SilentlyContinue"); |
| 423 | +expect(script).toContain("Remove-Item Env:OPENCLAW_PARALLELS_PLUGIN_ISOLATION"); |
| 424 | +}); |
| 425 | + |
410 | 426 | it("writes full model ids as config map keys in provider batches", () => { |
411 | 427 | const batch = JSON.parse(modelProviderConfigBatchJson("openai/gpt-5.5", "windows")) as Array<{ |
412 | 428 | path: string; |
|