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() }; 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 }); }); });