49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
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);
|
|
});
|