mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-12 15:30:39 +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 () => {
|
||||
const cwd = await createFixtureDir();
|
||||
mockPackCommandResult({
|
||||
|
||||
@@ -207,7 +207,14 @@ export async function packNpmSpecToArchive(params: {
|
||||
},
|
||||
);
|
||||
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 || "");
|
||||
|
||||
Reference in New Issue
Block a user