import { TicketDto } from '../src/interfaces/ticket/ticket.dto'; import { ValidationCount } from '../src/rules/ticket/validation-count'; import { TICKET_UNITAIRE_MULHOUSE } from './test-config'; describe('Validation Count', () => { const rule = new ValidationCount(); beforeAll(async () => { jest .spyOn(global.Date, 'now') .mockImplementation(() => new Date('2022-09-30 16:30:00').valueOf()); }); it('Valid ticket because number of validations unlimited', () => { const ticket = { ...TICKET_UNITAIRE_MULHOUSE, maxValidations: -1, nbValidations: 1233, }; expect(rule.validate(ticket as unknown as TicketDto)).toBe(true); }); it('Valid ticket Validation count because number of validations count NOT reached', () => { const ticket = { ...TICKET_UNITAIRE_MULHOUSE, maxValidations: 2, nbValidations: 1, }; expect(rule.validate(ticket as unknown as TicketDto)).toBe(true); }); it('Invalid ticket because number of validations count reached', () => { const ticket = { ...TICKET_UNITAIRE_MULHOUSE, maxValidations: 2, nbValidations: 3, }; expect(rule.validate(ticket as unknown as TicketDto)).toBe(false); }); });