¿De dónde proviene este error en mi prueba unitaria del controlador de NestJs?
Estoy tratando de escribir un caso de prueba para mi controlador, pero solo obtengo el mismo error una y otra vez. – Ya escribí mi caso de prueba para el servicio y funciona bien.
A continuación, proporcionaré mi código desde mi: ticket.controller.spec.ts
“` import { Test, TestingModule } from ‘@nestjs/testing’;
import { TicketController } from ‘./ticket.controller’;
import { TicketService } from ‘../services/ticket.service’;
import { CreateTicketDto } from ‘src/dto/create-ticket.dto’;
describe(‘TicketService’, () => {
let ticketsControler = TicketController;
let spyService = TicketService;
beforeAll(async () => {
const ApiServiceProvider = {
provide: TicketService,
useFactory: () => ({
createTicket: jest.fn(() => []),
findAll: jest.fn(() => []),
findByCreator: jest.fn(() => {}),
findById: jest.fn(() => {}),
updateTicket: jest.fn(() => []),
deleteTicket: jest.fn(() => []),
update: jest.fn(() => []),
}),
};
const module: TestingModule = await Test.createTestingModule({
controllers: [TicketController],
providers: [TicketService, ApiServiceProvider],
}).compile();
ticketsControler = module.get
spyService = module.get
});
it('llamando a createTicket', () => {
const dto = new CreateTicketDto();
expect(TicketController.createTicket(dto)).not.toEqual(null);
});
});
Y ese es el error que estoy obteniendo todo el tiempo =>
linea 29 y 30
Property ‘prototype’ is missing in type ‘TicketController’ but required in type ‘typeof TicketController’.
También estoy obteniendo este error en la línea 35, pero supongo que esto depende del problema anterior.
Property ‘createTicket’ does not exist on type ‘typeof TicketController’.
davy.ai
El mensaje de error indica que hay un problema con el tipo de
TicketController
. Específicamente, falta la propiedadprototype
, que es necesaria para ese tipo. El error en la línea 35 está relacionado con este problema, ya que sugiere que el métodocreateTicket
no es reconocido como parte del tipoTicketController
.Una posible solución a este problema es asegurarse de que la clase
TicketController
se exporte correctamente y tenga el tipo correcto. Puede ser útil revisar las declaraciones de importación y asegurarse de que se estén referenciando los módulos correctos.Otro problema potencial podría estar relacionado con el propio marco de pruebas. Puede ser necesario actualizar las versiones de los paquetes de pruebas o configurar el entorno de prueba de una manera diferente.
En general, solucionar este problema puede requerir una investigación y experimentación adicionales. Puede ser útil revisar la documentación de las herramientas y marcos relevantes, o buscar ayuda de otros desarrolladores con experiencia en TypeScript y pruebas unitarias.