Задать вопрос
@historydev
Редактирую файлы с непонятными расширениями

Как тестировать контроллер с @Res аргументом в методе?

Здравствуйте. Пытаюсь тестировать сгенерированный модуль nestjs. Всё получается, кроме одного момента, я не знаю даже как гуглить мою проблему, по ошибке ничего не находит. Собственно, я решил поиграться со статусами и использовал апи express для end-поинта следующим образом(убрал свои манипуляции с статусом, оставил проблемный аргумент):

import { Controller, Get, HttpCode, Post, HttpStatus, Res } from '@nestjs/common';
import { AppService } from './app.service';
import { Response } from 'express';

@Controller()
export class AppController {
	constructor(private readonly appService: AppService) {}
	
	@Get()
	getHello(@Res() res: Response):string {
		return this.appService.getHello('WTF its working!');
	}
}


Здесь всё работает и всё хорошо, следом я пишу тест по документации(пока нашёл только сквозное тестирование полного end-поинта, потыкал и это не помогло, видимо не то) - сейчас у меня есть следующий тест контроллера и сервиса:

import { Test, TestingModule } from '@nestjs/testing';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import {Response} from 'express';

describe('AppController', () => {
  let appController: AppController;
  let appService: AppService;

  beforeEach(async () => {
    const app: TestingModule = await Test.createTestingModule({
      controllers: [AppController],
      providers: [AppService],
    }).compile();

	appService = app.get<AppService>(AppService);
    appController = app.get<AppController>(AppController);
  });

  describe('root', () => {
    it('should return "Hello World!"', async () => {
		const result = 'WTF it working!';
	
	    expect(appService.getHello('WTF it working!')).toBe(result);
        expect(appController.getHello()).toBe(result);
    });
  });
});


Тест сервиса как по маслу, всё понятно и просто, а вот изменённый мной контроллер не поддаётся тесту, я пробовал передать ему res который он требует, аналогично как передал и в настоящем контроллере, но он подсвечивает его красным. Скажите пожалуйста, что мне искать в документации для решения? или можно пример, остальное найду.

Спасибо.
  • Вопрос задан
  • 79 просмотров
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы