fix(deps): run freshness check from escaped paths

This commit is contained in:
morluto
2026-07-16 19:51:25 +08:00
parent f23f52903c
commit 8a1c128b67
2 changed files with 19 additions and 2 deletions
+2 -1
View File
@@ -1,5 +1,6 @@
import { readFile } from "node:fs/promises";
import { resolve } from "node:path";
import { fileURLToPath } from "node:url";
const REMEDIATION = "Run `npm ci`, then retry.";
@@ -57,4 +58,4 @@ const main = async () => {
}
};
if (process.argv[1] === new URL(import.meta.url).pathname) await main();
if (process.argv[1] === fileURLToPath(import.meta.url)) await main();
+17 -1
View File
@@ -1,4 +1,4 @@
import { mkdtemp, mkdir, rm, writeFile } from "node:fs/promises";
import { copyFile, mkdtemp, mkdir, rm, writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { spawnSync } from "node:child_process";
@@ -79,4 +79,20 @@ describe("dependency install freshness", () => {
);
expect(result.stderr.match(/npm ci/gu)).toHaveLength(1);
});
it("runs from a script path containing URL-escaped characters", async () => {
const root = await fixture("0.9.0");
const scriptDirectory = join(root, "path with spaces");
const copiedScript = join(scriptDirectory, "check-dependency-install.mjs");
await mkdir(scriptDirectory);
await copyFile(script, copiedScript);
const result = spawnSync(process.execPath, [copiedScript], {
cwd: root,
encoding: "utf8",
});
expect(result.status).toBe(1);
expect(result.stderr).toContain("alpha: installed 0.9.0, expected 1.0.0");
});
});