import { ApiError } from '../../backend/src/common/errors/api-error'; import { ERROR_CODES } from '../../backend/src/common/errors/error-codes'; describe('ApiError', () => { it('formats validation errors with details', () => { const e = ApiError.validation('Bad input', { field: 'x' }); expect(e.getStatus()).toBe(400); const body = e.getResponse() as any; expect(body.code).toBe(ERROR_CODES.VALIDATION_FAILED); expect(body.message).toBe('Bad input'); expect(body.details).toEqual({ field: 'x' }); }); it('formats last-admin conflict', () => { const e = ApiError.conflict(ERROR_CODES.LAST_ADMIN, 'Cannot delete the last admin'); expect(e.getStatus()).toBe(409); const body = e.getResponse() as any; expect(body.code).toBe(ERROR_CODES.LAST_ADMIN); }); it('formats internal error as 500', () => { const e = ApiError.internal(); expect(e.getStatus()).toBe(500); }); });