derive cli contract version expectations
This commit is contained in:
parent
930ba5adcf
commit
ce767ea05a
1 changed files with 5 additions and 3 deletions
|
|
@ -7,6 +7,8 @@ import { tmpdir } from "node:os";
|
|||
|
||||
import { assertSafeProjectHookPath, cliPackageName, configureProject, createClaudeMcpAddJsonArgs, createLocalDevCliCommand, createVersionPinnedCliCommand, installProjectLocalHooks, parseConfigureArgs, parseInstallArgs, parseReactArgs, parseSayArgs, resolveConfiguredPet, runClaudeMcpAddJson } from "./index.js";
|
||||
|
||||
const packageVersion = (JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")) as { readonly version: string }).version;
|
||||
|
||||
const parsed = parseConfigureArgs(["--agent", "claude", "--pet", "fixer", "--cwd", "/tmp/project", "--yes"]);
|
||||
assert.equal(parsed.agent, "claude");
|
||||
assert.equal(parsed.petId, "fixer");
|
||||
|
|
@ -130,9 +132,9 @@ try {
|
|||
const opencodeConfigPath = join(opencodeProject, ".opencode", "opencode.jsonc");
|
||||
const opencodeInstructionPath = join(opencodeProject, ".opencode", "openpets.md");
|
||||
const opencodeConfig = JSON.parse(readFileSync(opencodeConfigPath, "utf8")) as { readonly mcp?: Record<string, { readonly command?: readonly string[] }>; readonly instructions?: readonly string[]; readonly plugin?: readonly unknown[] };
|
||||
assert.deepEqual(opencodeConfig.mcp?.openpets?.command, ["npx", "-y", "@open-pets/cli@2.0.4", "mcp", "--pet", "fixer"]);
|
||||
assert.deepEqual(opencodeConfig.mcp?.openpets?.command, ["npx", "-y", `@open-pets/cli@${packageVersion}`, "mcp", "--pet", "fixer"]);
|
||||
assert.deepEqual(opencodeConfig.instructions, [".opencode/openpets.md"]);
|
||||
assert.deepEqual(opencodeConfig.plugin, [["@open-pets/opencode@2.0.4", { pet: "fixer" }]]);
|
||||
assert.deepEqual(opencodeConfig.plugin, [[`@open-pets/opencode@${packageVersion}`, { pet: "fixer" }]]);
|
||||
assert.match(readFileSync(opencodeInstructionPath, "utf8"), /OPENPETS:START/);
|
||||
await configureProject({ agent: "opencode", petId: "fixer", cwd: opencodeProject, yes: true, force: false, localDev: false });
|
||||
const opencodeConfigAgain = readFileSync(opencodeConfigPath, "utf8");
|
||||
|
|
@ -158,7 +160,7 @@ try {
|
|||
const lowerTop = readFileSync(join(lowerOwnerProject, "opencode.json"), "utf8");
|
||||
const lowerOwned = JSON.parse(readFileSync(join(lowerOwnerProject, ".opencode", "opencode.jsonc"), "utf8")) as { readonly mcp?: Record<string, { readonly command?: readonly string[] }> };
|
||||
assert.equal(lowerTop.includes("@open-pets/cli"), false);
|
||||
assert.deepEqual(lowerOwned.mcp?.openpets?.command, ["npx", "-y", "@open-pets/cli@2.0.4", "mcp", "--pet", "fixer"]);
|
||||
assert.deepEqual(lowerOwned.mcp?.openpets?.command, ["npx", "-y", `@open-pets/cli@${packageVersion}`, "mcp", "--pet", "fixer"]);
|
||||
|
||||
const customProject = join(dir, "opencode-custom");
|
||||
mkdirSync(customProject);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue