mirror of
https://github.com/nestjs/nest.git
synced 2026-02-21 23:11:44 +00:00
50 lines
1.6 KiB
TypeScript
50 lines
1.6 KiB
TypeScript
import { FastifyAdapter } from '../../adapters/fastify-adapter';
|
|
import { createError } from '@fastify/error';
|
|
import { HttpException } from '@nestjs/common';
|
|
|
|
describe('FastifyAdapter', () => {
|
|
let fastifyAdapter: FastifyAdapter;
|
|
|
|
beforeEach(() => {
|
|
fastifyAdapter = new FastifyAdapter();
|
|
});
|
|
|
|
afterEach(() => vi.restoreAllMocks());
|
|
|
|
describe('mapException', () => {
|
|
it('should map FastifyError with status code to HttpException', () => {
|
|
const FastifyErrorCls = createError(
|
|
'FST_ERR_CTP_INVALID_MEDIA_TYPE',
|
|
'Unsupported Media Type: %s',
|
|
415,
|
|
);
|
|
const error = new FastifyErrorCls();
|
|
|
|
const result = fastifyAdapter.mapException(error) as HttpException;
|
|
|
|
expect(result).to.be.instanceOf(HttpException);
|
|
expect(result.message).to.equal(error.message);
|
|
expect(result.getStatus()).to.equal(415);
|
|
});
|
|
|
|
it('should return FastifyError without user status code to Internal Server Error HttpException', () => {
|
|
const FastifyErrorCls = createError(
|
|
'FST_WITHOUT_STATUS_CODE',
|
|
'Error without status code',
|
|
);
|
|
const error = new FastifyErrorCls();
|
|
|
|
const result = fastifyAdapter.mapException(error) as HttpException;
|
|
expect(result).to.be.instanceOf(HttpException);
|
|
expect(result.message).to.equal(error.message);
|
|
expect(result.getStatus()).to.equal(500);
|
|
});
|
|
|
|
it('should return error if it is not FastifyError', () => {
|
|
const error = new Error('Test error');
|
|
const result = fastifyAdapter.mapException(error);
|
|
expect(result).to.equal(error);
|
|
});
|
|
});
|
|
});
|