- Клиент API: ApiError.body, apiFetchBlob для бинарных ответов с автоматическим разбором ошибок - Деньги: formatAmount (строка Decimal → форматированная с пробелами), parseAmountInput (ввод → нормализация) - Подписи: documentTypeLabel, documentStatusLabel, fileStatusLabel, periodLabel для UI - Dev-proxy: /api → localhost:8000 (CORS-free, Content-Disposition читается) - Типы: Quarter, DocumentType, DocumentStatus, FileStatus в src/types/api.ts - Удалён smoke.test.ts Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
32 lines
1.7 KiB
TypeScript
32 lines
1.7 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
||
import { documentStatusLabel, documentTypeLabel, fileStatusLabel, periodLabel } from './labels';
|
||
|
||
describe('labels', () => {
|
||
it('тип документа', () => {
|
||
expect(documentTypeLabel('OSV', '60.01')).toBe('ОСВ 60.01');
|
||
expect(documentTypeLabel('OSV', null)).toBe('ОСВ');
|
||
expect(documentTypeLabel('BALANCE', null)).toBe('Бух. баланс');
|
||
expect(documentTypeLabel('INCOME', null)).toBe('ОФР');
|
||
expect(documentTypeLabel('DISCLOSURE', null)).toBe('Расшифровка');
|
||
expect(documentTypeLabel('OTHER', null)).toBe('Прочее');
|
||
});
|
||
it('период', () => {
|
||
expect(periodLabel(2024, 'Q1', false)).toBe('2024 К1');
|
||
expect(periodLabel(2024, 'Q3', true)).toBe('2024 · 9 мес.');
|
||
expect(periodLabel(2024, 'Q4', true)).toBe('2024 · 12 мес.');
|
||
expect(periodLabel(2024, null, null)).toBe('период не определён');
|
||
expect(periodLabel(null, null, null)).toBe('период не определён');
|
||
});
|
||
it('статусы', () => {
|
||
expect(documentStatusLabel('NEEDS_CHECK')).toBe('Требуется проверка');
|
||
expect(documentStatusLabel('RECOGNIZED')).toBe('Требуется проверка');
|
||
expect(documentStatusLabel('CONFIRMED')).toBe('Загружен');
|
||
expect(documentStatusLabel('ERROR')).toBe('Ошибка');
|
||
expect(fileStatusLabel('UPLOADED')).toBe('Обработка');
|
||
expect(fileStatusLabel('PROCESSING')).toBe('Обработка');
|
||
expect(fileStatusLabel('PROCESSED')).toBe('Обработан');
|
||
expect(fileStatusLabel('ERROR')).toBe('Ошибка');
|
||
expect(fileStatusLabel('SUPERSEDED')).toBe('Заменён');
|
||
});
|
||
});
|