import { describe, it, expect } from 'vitest'; import { parseNegotiationSection } from './negotiation-section.mjs'; const PLAN = `# План ## Цель Сделать X. ## Переговоры ### Круг 1 Не согласен с замечанием про шаг 2: он атомарен. ### Круг 2 Принял про шаг 4, переписал. ## Шаги - [ ] ...`; describe('parseNegotiationSection', () => { it('достаёт круги с дословным текстом позиции', () => { const r = parseNegotiationSection(PLAN); expect(r).toEqual([ { round: 1, position: 'Не согласен с замечанием про шаг 2: он атомарен.', mentor: '', judge: '' }, { round: 2, position: 'Принял про шаг 4, переписал.', mentor: '', judge: '' }, ]); }); it('делит доводы по дорожкам M/J внутри круга', () => { const plan = `## Переговоры ### Круг 1 **Наставнику:** не согласен с пунктом 2, он атомарен **Судье:** критерий в разделе K ## Шаги`; const r = parseNegotiationSection(plan); expect(r[0].mentor).toBe('не согласен с пунктом 2, он атомарен'); expect(r[0].judge).toBe('критерий в разделе K'); }); it('нет раздела → пустой массив', () => { expect(parseNegotiationSection('# План\n## Цель\nY')).toEqual([]); }); it('последний круг (для арбитража) = max по round', () => { const r = parseNegotiationSection(PLAN); expect(r[r.length - 1].round).toBe(2); }); it('не падает на мусоре', () => { expect(parseNegotiationSection(null)).toEqual([]); }); });