Files
HIPCTF2/tests/backend/api-error.spec.ts
T

25 lines
929 B
TypeScript

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