// 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([]); }); });