[Dúvida] É possível criar um teste unitário para verificar o disparo de um cron job usando NestJs Scheduler ?
Olá pessoal!
Bem, não consegui encontrar nenhum local que pudesse me dar uma dica de como testar o trigger de um cron job, usando o scheduler do nestjs. Este tipo de teste é realmente necessário?
Se alguem souber, segue um exemplo simples de um cron service.
Obs: Estou importando o ScheduleModule.forRoot() no app.module, conforme documentação. Nos testes eu tentei com e sem a importação dele, mas sem sucesso.
Obs2: Neste caso eu precisaria que chamá-lo, logo quando a aplicação iniciasse, por isso o onApplicationBootstrap
import { Injectable, OnApplicationBootstrap } from '@nestjs/common';
import { Cron } from '@nestjs/schedule';
@Injectable()
export class CronService implements OnApplicationBootstrap {
constructor() {}
onApplicationBootstrap() {
this.startCron();
}
@Cron('0 8 * * *')
async startCron() {
console.log('Cron triggered!');
}
}
Fala, Bruno :) acredito que não faça sentido desenvolver esse teste. Cron jobs são recursos do SO e já tem seu funcionamento testado e validado. O que seria do seu interesse testar, seria a função que o Cronjob executa, que neste caso está no domínio do seu negócio, e essa função pode ter um teste unitário sem qualquer dependência com um cronjob.
Já tentou criar um mock e fazer uma função que usa o cron e ai testar pra ver se está fazendo o que deveria corretamente? É uma boa. Não sei muito a respeito.