Files
openclaw/src/cli/claws-cli.test-helpers.ts
T
Peter Steinberger a5b798a88c fix(cli): avoid missing-facing camera snap failures (#120430)
* fix(cli): use node default camera for snap

* test(cli): isolate ClawHub package preflight

* test(cli): split Claws package fixture
2026-08-08 08:05:50 -07:00

72 lines
1.9 KiB
TypeScript

import { mkdir, realpath, writeFile } from "node:fs/promises";
import { basename, dirname, join } from "node:path";
export const minimalManifest = {
schemaVersion: 1,
agent: { id: "demo-agent", name: "Demo Agent" },
};
export const pluginSetupReadiness = {
ready: false,
requirements: [
{
kind: "plugin-setup" as const,
plugin: "market-data",
provider: "market-data",
envVars: ["MARKET_DATA_TOKEN"],
authMethods: ["token"],
},
],
};
export async function canonicalFuturePath(target: string): Promise<string> {
return join(await realpath(dirname(target)), basename(target));
}
export async function writeManifestFile(
tempDirs: { make(prefix: string): string },
value: unknown = minimalManifest,
): Promise<string> {
const dir = tempDirs.make("openclaw-claws-cli-");
const path = join(dir, "openclaw.claw.json");
await writeFile(path, JSON.stringify(value), "utf8");
return path;
}
export async function writePackageFixture(tempDirs: {
make(prefix: string): string;
}): Promise<{ root: string; workspace: string }> {
const root = tempDirs.make("openclaw-claws-cli-package-");
await mkdir(join(root, "workspace"));
await writeFile(join(root, "workspace", "AGENTS.md"), "# Demo\n", "utf8");
await writeFile(
join(root, "package.json"),
JSON.stringify({
name: "@acme/demo-agent",
version: "1.2.3",
openclaw: { claw: "openclaw.claw.json" },
}),
"utf8",
);
await writeFile(
join(root, "openclaw.claw.json"),
JSON.stringify({
schemaVersion: 1,
agent: { id: "demo-agent", name: "Demo Agent" },
workspace: {
bootstrapFiles: { "AGENTS.md": { source: "workspace/AGENTS.md" } },
},
packages: [
{
kind: "skill",
source: "clawhub",
ref: "@acme/demo-skill",
version: "1.0.0",
},
],
}),
"utf8",
);
return { root, workspace: join(root, "target-workspace") };
}