arm-web/src/widgets/DocumentReview/focusTarget.test.ts

25 lines
1.4 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import type { StatementOut } from '../../types/api';
import statementV2Json from './__fixtures__/statement-v2.json';
import { switchesFor } from './focusTarget';
import { buildStatementGrid } from './statementGrid';
const { rows } = buildStatementGrid(statementV2Json as unknown as StatementOut);
const off = { showDetails: false, showEmptySublines: false, emptySublines: new Set<string>() };
describe('switchesFor', () => {
it('скрытая расшифровка — включить расшифровки', () => {
expect(switchesFor('l-d13', rows, off)).toEqual({ details: true, emptySublines: false });
expect(switchesFor('l-d13', rows, { ...off, showDetails: true })).toEqual({ details: false, emptySublines: false });
});
it('скрытая пустая подстрока — включить пустые строки', () => {
const state = { ...off, emptySublines: new Set(['l-1210']) };
expect(switchesFor('l-1210', rows, state)).toEqual({ details: false, emptySublines: true });
expect(switchesFor('l-1210', rows, { ...state, showEmptySublines: true })).toEqual({ details: false, emptySublines: false });
});
it('обычная и неизвестная строка — ничего', () => {
expect(switchesFor('l-1110', rows, off)).toEqual({ details: false, emptySublines: false });
expect(switchesFor('нет-такой', rows, off)).toEqual({ details: false, emptySublines: false });
});
});