Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
25 lines
1.4 KiB
TypeScript
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 });
|
|
});
|
|
});
|