mirror of
https://github.com/mvschwarz/openrig.git
synced 2026-11-08 08:11:17 -10:00
test(cli): Restore-Packet M4 — command-registration meta-tests + final regression check
Closes M4 dispatch qitem-20260502024605-55720e41. M3 marshal-acceptance gate PASSED at predecessora5132da(read + validate actual implementations landed). M4 SCOPE (per IMPL § M4 line 193-207): - Add command-registration meta-tests catching any future regression where `restore-packet` would import-but-not-register (createProgram chain wiring break). - Re-run full regression suite to confirm no spillover from M2/M3 work. - ADD-ONLY milestone: no functional code changes; no implementation mutations. NEW TESTS (3 cases at packages/cli/test/restore-packet.test.ts): - M4: createProgram registers restore-packet as a top-level command (program.commands names contain "restore-packet"). - M4: rig --help discovers restore-packet in help output (program.helpInformation contains "restore-packet"). - M4: rig restore-packet --help discovers all 3 subcommands (write, read, validate) via subcommand helpInformation. Reference precedent: packages/cli/test/compact-plan.test.ts:166-176 (createProgram + parseAsync registration assertion shape). RE-VERIFICATION COMMANDS (all green; node v22.22.1): cd packages/cli: - npx vitest run test/restore-packet.test.ts → 103/103 PASS (100 baseline + 3 new M4). - npx tsc --noEmit → exit 0. - npm run build → exit 0; dist/schemas/restore-summary.schema.json present. Compiled-output runtime check (Quality Lesson v10 + v12 carry-forward): - node -e '<import dist/index.js; createProgram; helpInformation contains "restore-packet"; subcommand discovery yields ["read","validate","write"]>' → "compiled-output: restore-packet registered with subs ['read','validate','write']" ✓ Per-package honest baselines (Quality Lesson v8): - packages/cli: 747 total / 743 PASS / 4 FAIL named flakes (chatroom wait timing, config-store env pollution, two preflight host-port). Baseline: 740 → 743 = +3 new tests; 4 flakes unchanged. - packages/daemon: 2242 total / 2242 PASS / 0 FAIL. M4 did NOT touch daemon code; no spillover. ENVIRONMENT NOTES: - Node version: v22.22.1 (matches better-sqlite3 native module 127). No new Node-coordination relevance introduced. M4 MARSHAL-ACCEPTANCE GATE (per IMPL § M4 line 202-207): ALL CRITERIA MET: - New command-registration test green: DONE (3/3). - ~25-30 Tier 1 cases green target: DONE (vertical at 103/103 focused — well above precedent target of 33/33 from session_source fork v1). - Command registration verified (CLI help discovery passes): DONE (compiled-output runtime check). - No regression in full packages/cli (740 + N new / 4 named flakes): DONE (743/747; 4 flakes unchanged). - No regression in full packages/daemon (2242/2242): DONE. - Posture full QA/testing window: DONE. BOUNDARY DISCIPLINE: - ONLY 1 file changed (verified via git diff --cached --stat): packages/cli/test/restore-packet.test.ts (+31; 3 new test cases inserted within the existing M3 describe block). - ZERO functional code changes (M4 is meta-test + regression only per dispatch). - M2 surfaces UNTOUCHED: write CLI, parsers, redaction, runtime-detect, omitted-records, types, schema embed, packet-writer, daemon full-read route, daemon redaction module, daemon route tests. - M3 surfaces UNTOUCHED: read action, validate action, schema-validator severity differentiation. - M5 (live host walk) / M6 (VM proof) surfaces UNTOUCHED. - Velocity prior-art .mjs UNCHANGED. - Unrelated dirty work (docs/*, ps.ts, codex-runtime-adapter, daemon SKILL.md) NOT staged. - No auth tokens, device codes, or credentials in fixtures. CUMULATIVE QUALITY-LESSON CARRY-FORWARD (v1-v9 + v10-v12 candidates): - v6, v7 refined; v8 (honest baseline match per-package); v9 (no real-looking credentials in fixtures). - v10 (asset packaging): registration verified via compiled dist/. - v11 (nested-content coverage): preserved at M2b R2 + M2c regression. - v12 (CLI surface coverage): M4 directly applies — registration check exercises createProgram surface. Posture: full QA/testing window (matches dispatch + IMPL § M4 line 207). Dispatch: qitem-20260502024605-55720e41. Predecessor: openriga5132da(M3 marshal-gate PASS). Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
This commit is contained in:
1 parent
a5132dad87
commit
ab822eef53
1 file changed
+31
@@ -1980,6 +1980,37 @@ describe("M3 restore-packet read + validate", () => {
|
||||
expect(exitCode === undefined || exitCode === 0).toBe(true);
|
||||
});
|
||||
|
||||
// ─── M4 ───
|
||||
// Per dispatch qitem-20260502024605-55720e41 + IMPL § M4 line 193-207:
|
||||
// command-registration meta-tests. Catch any future regression where
|
||||
// `restore-packet` would import-but-not-register (createProgram chain
|
||||
// wiring break). Reference precedent: compact-plan.test.ts:166-176.
|
||||
|
||||
it("M4: createProgram registers restore-packet as a top-level command", async () => {
|
||||
const { createProgram } = await import("../src/index.js");
|
||||
const program = createProgram();
|
||||
const names = program.commands.map((c) => c.name());
|
||||
expect(names).toContain("restore-packet");
|
||||
});
|
||||
|
||||
it("M4: rig --help discovers restore-packet in help output", async () => {
|
||||
const { createProgram } = await import("../src/index.js");
|
||||
const program = createProgram();
|
||||
const helpText = program.helpInformation();
|
||||
expect(helpText).toContain("restore-packet");
|
||||
});
|
||||
|
||||
it("M4: rig restore-packet --help discovers all 3 subcommands (write, read, validate)", async () => {
|
||||
const { createProgram } = await import("../src/index.js");
|
||||
const program = createProgram();
|
||||
const restorePacket = program.commands.find((c) => c.name() === "restore-packet");
|
||||
expect(restorePacket).toBeDefined();
|
||||
const helpText = restorePacket!.helpInformation();
|
||||
expect(helpText).toContain("write");
|
||||
expect(helpText).toContain("read");
|
||||
expect(helpText).toContain("validate");
|
||||
});
|
||||
|
||||
it("validate: redaction_policy_id WRONG enum value -> REJECT", async () => {
|
||||
const fs = await import("node:fs");
|
||||
const path = await import("node:path");
|
||||
|
||||
Reference in new issue
Block a user