Files
brain/tools/plan-verified-context.test.mjs
T

23 lines
1.2 KiB
JavaScript

// tools/plan-verified-context.test.mjs
import { describe, it, expect } from 'vitest';
import { parseVerifiedContext } from './plan-verified-context.mjs';
describe('parseVerifiedContext (контекст-в-плане, решение владельца 2026-06-12)', () => {
it('блок парсится в массив записей', () => {
const md = '# План\n```verified-context-json\n[{"id":"1","kind":"EXTRACTED","claim":"c","ref":"tools/x.mjs:1","anchor":"export function x"}]\n```\nдалее';
const r = parseVerifiedContext(md);
expect(r).toHaveLength(1);
expect(r[0].kind).toBe('EXTRACTED');
});
it('нет блока → [] (VA-9 заблокирует печать — деградация к строгости)', () => {
expect(parseVerifiedContext('# План без контекста')).toEqual([]);
});
it('битый JSON / не-массив → []', () => {
expect(parseVerifiedContext('```verified-context-json\n{оборвано\n```')).toEqual([]);
expect(parseVerifiedContext('```verified-context-json\n{"a":1}\n```')).toEqual([]);
});
it('не-строка → []', () => {
expect(parseVerifiedContext(null)).toEqual([]);
});
});