Boa noite Tenho uma applicação em nestjs, o bootstrap do nest está configurado e rodando com sucesso, nele tem um modulo do fastfycookie que é usado nas requisições. Segue exemplo:
main.ts
const addHelmetInstance = (app: NestFastifyApplication) => {
app.register(helmet, {
contentSecurityPolicy: {
reportOnly: true,
},
});
};
const bootstrap = async () => {
const app = await NestFactory.create<NestFastifyApplication>(
AppModule,
new FastifyAdapter({ logger: MyAppConfig.MyApp.logging }),
);
const globalPrefix = 'myapp';
app.setGlobalPrefix(globalPrefix);
app.enableCors();
app.register(fastifyCookies, {
secret: 'PrivateConfig.MyApp.cookieSecret',
});
const port = MyAppConfig.MyApp.port || 3333;
addHelmetInstance(app);
await app.listen(port, () => {
Logger.log('Listening at ' + 'PublicConfig.MyAppHost');
});
};
bootstrap();
constroller.ts
@Post('register')
async register(
@Res() res,
@Req() req,
@Body() data: Register,
): Promise<ApiError> {
try {
let reg = await this.authService.registerNewUser(data);
if (reg instanceof ApiError) {
return res.status(401).send(reg);
}
if (req.cookies[MyAppConfig.MyApp.authCookie]) {
req = this.authService.mergeJwtInfo(
req.cookies[BffConfig.bff.authCookie],
reg.token,
);
}
res.setCookie(MyAppConfig.MyApp.authCookie, reg.token);
return res.status(200).send(reg);
} catch (error) {
Logger.error(error.message, error);
return res.status(401).send(new ApiError(401, 'unhautorized'));
}
}
na parte de testes quando tento rodar um teste por exemplo no controller acima vejo um erro de que o metodo req.setCookie é undefined eu preciso registrar esse modulo fastfycookie na dentro dos testes mas não sei como.
teste.e2e-spec.ts
describe('AuthController (e2e)', () => {
let app: INestApplication;
beforeEach(async () => {
const moduleFixture: TestingModule = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleFixture.createNestApplication();
await app.init();
});
it('Cadastrar usuário com sucesso /auth/register (POST)', () => {
return request(app.getHttpServer())
.post('/auth/register')
.send(createTestCustomer())
.then((response) => {
expect(response.status).toBe(201);
expect(response.body).toHaveProperty('token');
});
});
}
Desde já agradeço.
Aucun commentaire:
Enregistrer un commentaire