import test from "node:test"; import assert from "node:assert/strict"; import { patchPiWebAccessSource } from "../scripts/lib/pi-web-access-patch.mjs"; test("patchPiWebAccessSource rewrites legacy Pi web-search config paths", () => { const input = [ 'import { join } from "node:path";', 'import { homedir } from "node:os";', 'const CONFIG_PATH = join(homedir(), ".pi", "web-search.json");', "", ].join("\n"); const patched = patchPiWebAccessSource("perplexity.ts", input); assert.match(patched, /FEYNMAN_WEB_SEARCH_CONFIG/); assert.match(patched, /PI_WEB_SEARCH_CONFIG/); }); test("patchPiWebAccessSource updates index.ts directory handling", () => { const input = [ 'import { existsSync, mkdirSync } from "node:fs";', 'import { join } from "node:path";', 'import { homedir } from "node:os";', 'const WEB_SEARCH_CONFIG_PATH = join(homedir(), ".pi", "web-search.json");', 'const dir = join(homedir(), ".pi");', "", ].join("\n"); const patched = patchPiWebAccessSource("index.ts", input); assert.match(patched, /import \{ dirname, join \} from "node:path";/); assert.match(patched, /const dir = dirname\(WEB_SEARCH_CONFIG_PATH\);/); }); test("patchPiWebAccessSource is idempotent", () => { const input = [ 'import { join } from "node:path";', 'import { homedir } from "node:os";', 'const CONFIG_PATH = join(homedir(), ".pi", "web-search.json");', "", ].join("\n"); const once = patchPiWebAccessSource("perplexity.ts", input); const twice = patchPiWebAccessSource("perplexity.ts", once); assert.equal(twice, once); });