Можно ли использовать ClassSerializeInterceptor при тестировании контроллеров Nest. JS?
Наша проблема в том, что ClassSerializeInterceptor прекрасно работает как часть приложения, но не запускается, когда создается экземпляр контроллера как часть модульный тест. Я попытался предоставить ClassSerializeInterdeptor как часть модуля тестирования, но безуспешно.
Пример кода:
Test
describe('AppController', () => {
let appController: AppController;
beforeEach(async () => {
const app: TestingModule = await Test.createTestingModule({
controllers: [AppController],
providers: [AppService, ClassSerializerInterceptor],
}).compile();
appController = app.get<AppController>(AppController);
});
describe('root', () => {
it('should not expose exlcuded fields"', async () => {
// expect(appController.getHello()).toBe('Hello World!');
const s = await appController.getHello();
expect(s).toHaveProperty('shouldBeIncluded');
expect(s).not.toHaveProperty('shouldBeRemoved');
});
});
});
Test Entity:
@ObjectType()
@Entity()
export class TestEntity {
@Field(type => ID)
@PrimaryGeneratedColumn('uuid')
shouldBeIncluded: string;
@Column({ nullable: true })
@Exclude()
shouldBeRemoved: string;
}