Para testar a API do NestJS para verificar se o middleware Utf8Middleware está funcionando, você pode usar uma biblioteca de testes HTTP, como o supertest, para fazer solicitações HTTP à sua API e verificar as respostas. Abaixo está um exemplo de como você pode fazer isso:

Para testar a API do NestJS para verificar se o middleware Utf8Middleware está funcionando, você pode usar uma biblioteca de testes HTTP, como o supertest, para fazer solicitações HTTP à sua API e verificar as respostas. Abaixo está um exemplo de como você pode fazer isso:

Suponha que você tenha uma rota em seu controlador que utilize o middleware Utf8Middleware. Por exemplo:

typescriptCopy code
import { Controller, Post, Req, Res } from '@nestjs/common'; @Controller('example') export class ExampleController { @Post('endpoint') async postData(@Req() req, @Res() res) { return 'Data received successfully'; } }

Aqui está um exemplo de como você pode testar essa rota usando o supertest:

  1. Instale o supertest se ainda não o fez. Você pode instalá-lo com o npm ou yarn:
cssCopy code
npm install supertest --save-dev
  1. Crie um arquivo de teste para a rota que utiliza o middleware em sua pasta de testes. Por exemplo, utf8-middleware.e2e-spec.ts:
typescriptCopy code
import { Test, TestingModule } from '@nestjs/testing'; import { INestApplication } from '@nestjs/common'; import * as request from 'supertest'; import { AppModule } from './../src/app.module'; describe('Utf8Middleware', () => { let app: INestApplication; beforeAll(async () => { const moduleFixture: TestingModule = await Test.createTestingModule({ imports: [AppModule], }).compile(); app = moduleFixture.createNestApplication(); await app.init(); }); afterAll(async () => { await app.close(); }); it('should return 415 if Content-Type is not UTF-8', () => { return request(app.getHttpServer()) .post('/example/endpoint') // Replace with the actual endpoint .set('Content-Type', 'application/json; charset=iso-8859-1') // Set an unsupported charset .send({ data: 'your-data' }) .expect(415) .expect('Unsupported Media Type. Use UTF-8 encoding.'); }); it('should pass through if Content-Type is UTF-8', () => { return request(app.getHttpServer()) .post('/example/endpoint') // Replace with the actual endpoint .set('Content-Type', 'application/json; charset=utf-8') // Set UTF-8 charset .send({ data: 'your-data' }) .expect(200) .expect('Data received successfully'); }); });

Aqui, estamos testando a rota /example/endpoint duas vezes: uma vez com um cabeçalho Content-Type inválido e outra vez com um cabeçalho Content-Type válido.

Lembre-se de ajustar o código de teste e os caminhos das rotas conforme a estrutura do seu projeto. Isso ajudará a garantir que o middleware Utf8Middleware está funcionando conforme o esperado.

Você achou esse artigo útil?