397777089e
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
23 lines
1.2 KiB
JavaScript
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([]);
|
|
});
|
|
});
|