У меня проблема с supertest, когда передается параметр запроса ({count: false}). Nest JS обрабатывает его как строку, поскольку проверка dto не выполняется. проверка
it.only('should NOT return count if count is turned off', async done => {
const result = await request(app.getHttpServer())
.get('/setting/')
.set('Content-Type', 'application/json')
.query({count:false})
.expect(200)
done();
});
dto
export class CollectionQueryDto {
@IsOptional()
@IsNotEmpty()
afterId: any;
@IsOptional()
@IsOptional()
@Transform((count, obj, type) =>
obj.count.toLowerCase() === 'true' ? true : false,
)
count: boolean;
constructor(partial: Partial<CollectionQueryDto> = {}) {
Object.assign(this, partial);
}
}
до того, как все настроено следующим образом
beforeAll(async () => {
const moduleFixture: TestingModule = await Test.createTestingModule({
imports: [
SettingModule,
SortationOrmModule,
ConfigModule,
GlobalOrmModule,
],
providers: [SettingService, ConfigService],
}).compile();
app = moduleFixture.createNestApplication();
service = moduleFixture.get<SettingService>(SettingService);
await app.init();
const rowsAffected = await loadConfigurationData(
'TST.loadConfigurationData',
);
});
Main.ts имеет канал проверки
app.useGlobalPipes(
new ValidationPipe({
transform: true,
forbidUnknownValues: true,
transformOptions: {
enableImplicitConversion: true,
},
exceptionFactory: errors => new ClassValidationException(errors),
}),
);
Любая помощь будет оценена.