29 lines
1.4 KiB
JavaScript
29 lines
1.4 KiB
JavaScript
import { describe, it, expect } from 'vitest';
|
|
import { diffTrunk } from './secretary-trunkdiff.mjs';
|
|
|
|
describe('diffTrunk', () => {
|
|
it('пусто, когда ствол не двигался', () => {
|
|
const p = { decisions: [{ text: 'A', struck: false }] };
|
|
expect(diffTrunk(p, p)).toBe('(ствол не двигался этот ход)');
|
|
});
|
|
it('ловит добавленное решение и зачёркнутый открытый', () => {
|
|
const oldP = { open: [{ text: 'Q', struck: false }] };
|
|
const newP = { decisions: [{ text: 'A', why: 'почему', struck: false }], open: [{ text: 'Q', struck: true }] };
|
|
const d = diffTrunk(oldP, newP);
|
|
expect(d).toContain('РЕШЕНИЕ добавлен: «A — почему»');
|
|
expect(d).toContain('ОТКРЫТЫЙ зачёркнут (закрыт ствол): «Q»');
|
|
});
|
|
});
|
|
|
|
describe('diffTrunk — база знаний', () => {
|
|
it('показывает добавленное и уточнённое знание', () => {
|
|
const oldP = { knowledge: [{ ref: 'a.mjs:1', text: 'старое' }] };
|
|
const newP = { knowledge: [{ ref: 'a.mjs:1', text: 'уточнённое' }, { ref: 'b.mjs:2', text: 'новое' }] };
|
|
const d = diffTrunk(oldP, newP);
|
|
expect(d).toContain('ЗНАНИЕ уточнено');
|
|
expect(d).toContain('a.mjs:1');
|
|
expect(d).toContain('ЗНАНИЕ добавлено');
|
|
expect(d).toContain('b.mjs:2');
|
|
});
|
|
});
|