Перезагрузите контроллер Nest Js в тестировании - PullRequest
1 голос
/ 19 февраля 2020

У нас есть метод декоратор, который применяется к маршрутам в одном из контроллеров. Этот декоратор принимает логическое значение, установленное в файлах конфигурации, и оно изменяется для каждой среды.

Мы хотели бы протестировать этот декоратор в тестах e2e, динамически изменяя значение конфигурации, что нам уже удалось сделать. Мы используем пакет config npm, а не пакет @nestjs/config.

Однако файл контроллера загружается до применения изменений, даже если импорт контроллера выполняется после выполнения этих изменений.

Вопрос в том, как мы могли бы перезагрузить или перекомпилировать контроллер, чтобы учесть измененное значение, чтобы декоратор изменил свое поведение.

Так мы создаем модуль, из которого мы раскроем приложение Nest Js для этого теста

    const moduleRef = await Test.createTestingModule({
      imports: [AuthModule],
      controllers: [AuthNestController],
    })
      .overrideProvider(IAuthProvider)
      .useClass(TestAuthProvider)
      .compile();

Также будет приветствоваться решение для принудительной загрузки кода контроллера после внесения изменений.

...