
















@@ -42,6 +42,16 @@ function createPnpmTarget(globalRoot: string): ResolvedGlobalInstallTarget {
4242};
4343}
444445+async function expectPathMissing(filePath: string): Promise<void> {
46+try {
47+await fs.access(filePath);
48+} catch (error) {
49+expect((error as NodeJS.ErrnoException).code).toBe("ENOENT");
50+return;
51+}
52+throw new Error(`Expected missing path: ${filePath}`);
53+}
54+4555function createRootRunner(globalRoot: string): CommandRunner {
4656return async (argv) => {
4757if (argv.join(" ") === "npm root -g") {
@@ -119,9 +129,9 @@ describe("runGlobalPackageUpdateSteps", () => {
119129await expect(fs.readFile(path.join(packageRoot, "package.json"), "utf8")).resolves.toContain(
120130'"version":"2.0.0"',
121131);
122-await expect(
123-fs.access(path.join(packageRoot, "dist", "extensions", "qa-channel", "runtime-api.js")),
124-).rejects.toMatchObject({ code: "ENOENT" });
132+await expectPathMissing(
133+path.join(packageRoot, "dist", "extensions", "qa-channel", "runtime-api.js"),
134+);
125135await expect(fs.readlink(path.join(prefix, "bin", "openclaw"))).resolves.toBe(
126136"../lib/node_modules/openclaw/dist/index.js",
127137);
@@ -258,7 +268,10 @@ describe("runGlobalPackageUpdateSteps", () => {
258268throw new Error(`unexpected step ${name}`);
259269}
260270expect(argv[0]).toBe("npm");
261-expect(argv).toEqual(expect.arrayContaining(["i", "-g", "--prefix", "openclaw@2.0.0"]));
271+expect(argv).toContain("i");
272+expect(argv).toContain("-g");
273+expect(argv).toContain("--prefix");
274+expect(argv).toContain("openclaw@2.0.0");
262275expect(argv).not.toContain("pnpm");
263276const prefixIndex = argv.indexOf("--prefix");
264277const stagePrefix = argv[prefixIndex + 1];
@@ -291,7 +304,7 @@ describe("runGlobalPackageUpdateSteps", () => {
291304"global update",
292305"global install swap",
293306]);
294-await expect(fs.access(staleChunk)).rejects.toMatchObject({ code: "ENOENT" });
307+await expectPathMissing(staleChunk);
295308});
296309});
297310@@ -533,7 +546,7 @@ describe("runGlobalPackageUpdateSteps", () => {
533546if (stagePrefix === undefined) {
534547throw new Error("expected staged install prefix");
535548}
536-await expect(fs.access(stagePrefix)).rejects.toMatchObject({ code: "ENOENT" });
549+await expectPathMissing(stagePrefix);
537550});
538551});
539552});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。