mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-19 04:37:27 +00:00
This commit is contained in:
@@ -244,6 +244,24 @@ describe("packNpmSpecToArchive", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("returns friendly error for 404 (package not on npm)", async () => {
|
||||||
|
const cwd = await createFixtureDir();
|
||||||
|
mockPackCommandResult({
|
||||||
|
stdout: "",
|
||||||
|
stderr: "npm error code E404\nnpm error 404 '@openclaw/whatsapp@*' is not in this registry.",
|
||||||
|
code: 1,
|
||||||
|
});
|
||||||
|
|
||||||
|
const result = await runPack("@openclaw/whatsapp", cwd);
|
||||||
|
|
||||||
|
expect(result.ok).toBe(false);
|
||||||
|
if (!result.ok) {
|
||||||
|
expect(result.error).toContain("Package not found on npm");
|
||||||
|
expect(result.error).toContain("@openclaw/whatsapp");
|
||||||
|
expect(result.error).toContain("docs.openclaw.ai/tools/plugin");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
it("returns explicit error when npm pack produces no archive name", async () => {
|
it("returns explicit error when npm pack produces no archive name", async () => {
|
||||||
const cwd = await createFixtureDir();
|
const cwd = await createFixtureDir();
|
||||||
mockPackCommandResult({
|
mockPackCommandResult({
|
||||||
|
|||||||
@@ -207,7 +207,14 @@ export async function packNpmSpecToArchive(params: {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
if (res.code !== 0) {
|
if (res.code !== 0) {
|
||||||
return { ok: false, error: `npm pack failed: ${res.stderr.trim() || res.stdout.trim()}` };
|
const raw = res.stderr.trim() || res.stdout.trim();
|
||||||
|
if (/E404|is not in this registry/i.test(raw)) {
|
||||||
|
return {
|
||||||
|
ok: false,
|
||||||
|
error: `Package not found on npm: ${params.spec}. See https://docs.openclaw.ai/tools/plugin for installable plugins.`,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return { ok: false, error: `npm pack failed: ${raw}` };
|
||||||
}
|
}
|
||||||
|
|
||||||
const parsedJson = parseNpmPackJsonOutput(res.stdout || "");
|
const parsedJson = parseNpmPackJsonOutput(res.stdout || "");
|
||||||
|
|||||||
Reference in New Issue
Block a user