import { describe, it, expect } from 'vitest'; import { AxiosError } from 'axios'; import { autopodborErrorMessage } from '../../resources/js/api/autopodbor'; function axErr(status: number, body: unknown): AxiosError { const e = new AxiosError('err'); // @ts-expect-error — минимальный мок ответа e.response = { status, data: body, statusText: '', headers: {}, config: {} }; return e; } describe('autopodborErrorMessage — адресные сообщения по коду ответа', () => { it('balance_insufficient → про деньги/пополнение', () => { const m = autopodborErrorMessage(axErr(409, { error: 'balance_insufficient' }), 'fallback'); expect(m.toLowerCase()).toContain('баланс'); expect(m).not.toBe('fallback'); }); it('run_in_flight → «подбор уже идёт»', () => { const m = autopodborErrorMessage(axErr(409, { error: 'run_in_flight' }), 'fallback'); expect(m.toLowerCase()).toContain('уже идёт'); }); it('name_or_site_required → про название/сайт', () => { const m = autopodborErrorMessage(axErr(422, { error: 'name_or_site_required' }), 'fallback'); expect(m.toLowerCase()).toContain('назван'); }); it('неизвестный код → fallback', () => { const m = autopodborErrorMessage(axErr(500, { error: 'boom' }), 'мой fallback'); expect(m).toBe('мой fallback'); }); it('не-axios ошибка → fallback', () => { const m = autopodborErrorMessage(new Error('x'), 'мой fallback'); expect(m).toBe('мой fallback'); }); });