arm-core/web/src/utils/chessMatrixRequest.test.ts
Andrey Epifancev 5115704f63 AURORA-1757: итоги шахматки из API, фильтр компаний на сервере (#224)
- клиент на единый POST …/intercompany-matrix и …/export
- матрица: колонка «Итого Дт» и строка «Итого Кт» из total_debit/total_credit,
  клиентское сложение убрано
- фильтр «Компании» уходит в запрос (legal_entity_ids), варианты — весь
  периметр из ответа без выбора; выгрузка с тем же выбором
- результирующая таблица без строки «Итого», колонка «Итого по группе»
- change intercompany-matrix-totals-ui

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 17:08:28 +04:00

31 lines
1.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { describe, expect, it } from 'vitest';
import { chessMatrixRequest, isWholePerimeter } from './chessMatrixRequest';
describe('chessMatrixRequest', () => {
it('пустые фильтры — пустые списки: все балансовые счета и весь периметр', () => {
expect(chessMatrixRequest([], [], [])).toEqual({ debit_account_ids: [], credit_account_ids: [], legal_entity_ids: [] });
});
it('выбранные счета и компании уходят в запрос как есть', () => {
expect(chessMatrixRequest(['d1'], ['c1', 'c2'], ['le1'])).toEqual({
debit_account_ids: ['d1'],
credit_account_ids: ['c1', 'c2'],
legal_entity_ids: ['le1'],
});
});
it('списки копируются: правка фильтра после отправки не меняет тело', () => {
const companies = ['le1'];
const body = chessMatrixRequest([], [], companies);
companies.push('le2');
expect(body.legal_entity_ids).toEqual(['le1']);
});
});
describe('isWholePerimeter', () => {
it('без выбора компаний ответ содержит весь периметр — из него строятся варианты фильтра', () => {
expect(isWholePerimeter(chessMatrixRequest(['d1'], ['c1'], []))).toBe(true);
});
it('с выбором компаний ответ сужен — варианты фильтра не трогаем', () => {
expect(isWholePerimeter(chessMatrixRequest([], [], ['le1']))).toBe(false);
});
});