fix(codex): sync hook status versions
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { mkdtemp, mkdir, readFile, writeFile } from "node:fs/promises";
|
||||
import { join } from "node:path";
|
||||
import { tmpdir } from "node:os";
|
||||
import test from "node:test";
|
||||
|
||||
import { syncHookStatusMessages } from "../scripts/sync-hook-status-messages.mjs";
|
||||
|
||||
async function writeJson(path, value) {
|
||||
await writeFile(path, `${JSON.stringify(value, null, "\t")}\n`);
|
||||
}
|
||||
|
||||
async function readJson(path) {
|
||||
return JSON.parse(await readFile(path, "utf8"));
|
||||
}
|
||||
|
||||
test("#given a component without hooks #when hook status messages sync #then build-time version sync skips it", async () => {
|
||||
// given
|
||||
const root = await mkdtemp(join(tmpdir(), "omo-codex-hook-status-"));
|
||||
await mkdir(join(root, ".codex-plugin"), { recursive: true });
|
||||
await mkdir(join(root, "hooks"), { recursive: true });
|
||||
await mkdir(join(root, "components", "comment-checker", "hooks"), { recursive: true });
|
||||
await mkdir(join(root, "components", "git-bash"), { recursive: true });
|
||||
await writeJson(join(root, ".codex-plugin", "plugin.json"), { version: "0.1.0" });
|
||||
await writeJson(join(root, "components", "comment-checker", "package.json"), { version: "0.1.1" });
|
||||
await writeJson(join(root, "components", "git-bash", "package.json"), { version: "0.3.0" });
|
||||
await writeJson(join(root, "hooks", "hooks.json"), {
|
||||
hooks: {
|
||||
PostToolUse: [
|
||||
{
|
||||
hooks: [
|
||||
{
|
||||
type: "command",
|
||||
command: 'node "${PLUGIN_ROOT}/components/comment-checker/dist/cli.js" hook post-tool-use',
|
||||
statusMessage: "LazyCodex(0.1.0): Checking Comments",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
await writeJson(join(root, "components", "comment-checker", "hooks", "hooks.json"), {
|
||||
hooks: {
|
||||
PostToolUse: [
|
||||
{
|
||||
hooks: [
|
||||
{
|
||||
type: "command",
|
||||
command: 'node "${PLUGIN_ROOT}/dist/cli.js" hook post-tool-use',
|
||||
statusMessage: "LazyCodex(0.1.0): Checking Comments",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
// when
|
||||
await syncHookStatusMessages(root);
|
||||
|
||||
// then
|
||||
const aggregateHooks = await readJson(join(root, "hooks", "hooks.json"));
|
||||
const componentHooks = await readJson(join(root, "components", "comment-checker", "hooks", "hooks.json"));
|
||||
assert.equal(aggregateHooks.hooks.PostToolUse[0].hooks[0].statusMessage, "LazyCodex(0.1.1): Checking Comments");
|
||||
assert.equal(componentHooks.hooks.PostToolUse[0].hooks[0].statusMessage, "LazyCodex(0.1.1): Checking Comments");
|
||||
});
|
||||
Reference in New Issue
Block a user