fix(voyage): repair plan-determinism test reference path [skip-docs]

This commit is contained in:
Kjell Tore Guttormsen 2026-05-10 10:21:52 +02:00
commit a24c3d1e3b
2 changed files with 107 additions and 7 deletions

View file

@ -112,14 +112,16 @@ test('plan determinism — forward-compat: new fixtures with profile_used parse
}
});
test('plan determinism — forward-compat: real v4.1 plan validates with --strict (no PLAN_VERSION_MISMATCH)', async () => {
test('plan determinism — forward-compat: synthetic v1.7 plan validates with --strict (no PLAN_VERSION_MISMATCH)', async () => {
// Sanity check that adding profile_used to manifest-yaml schema doesn't
// regress full plan-validator strict-mode behaviour on a real plan that
// ships profile_used in step manifests.
const realPlan = '.claude/projects/2026-05-08-voyage-v4.1-modellprofiler/plan.md';
// regress full plan-validator strict-mode behaviour on a v1.7 plan with
// standard step + manifest structure. Uses a committed synthetic fixture
// (plan-run-C.md) instead of a gitignored project plan so the assertion
// is stable across worktrees and headless runs.
const fixturePlan = 'tests/synthetic/plan-run-C.md';
const { validatePlan } = await import('../../lib/validators/plan-validator.mjs');
const result = await validatePlan(join(ROOT, realPlan), { strict: true });
assert.equal(result.valid, true, `real plan must validate strict: ${JSON.stringify(result.errors)}`);
const result = await validatePlan(join(ROOT, fixturePlan), { strict: true });
assert.equal(result.valid, true, `synthetic plan must validate strict: ${JSON.stringify(result.errors)}`);
const versionMismatch = (result.warnings || []).find((w) => w.code === 'PLAN_VERSION_MISMATCH');
assert.equal(versionMismatch, undefined, 'real plan must NOT emit PLAN_VERSION_MISMATCH warning');
assert.equal(versionMismatch, undefined, 'synthetic plan must NOT emit PLAN_VERSION_MISMATCH warning');
});