import { TicketDto } from '../src/interfaces/ticket/ticket.dto'; import { ValidationDelay } from '../src/rules/ticket/validation-delay'; import { TICKET_UNITAIRE_MULHOUSE, VALIDATION_STATE_VALID } from './test-config'; describe.skip('Validation Delay', () => { const rule = new ValidationDelay(); beforeAll(async () => { jest .spyOn(global.Date, 'now') .mockImplementation(() => new Date('2022-09-30 16:30:00').valueOf()); }); it('Valid ticket, validation delay -1', () => { const ticket = { ...TICKET_UNITAIRE_MULHOUSE, ticketDuration: -1, firstValidation: VALIDATION_STATE_VALID, nbValidations: 1, }; expect(rule.validate(ticket as unknown as TicketDto)).toBe(true); }); it('Valid ticket, validation delay 1 hour', () => { const ticket = { ...TICKET_UNITAIRE_MULHOUSE, antiPassback: 0, ticketDuration: 3600, firstValidation: { ...VALIDATION_STATE_VALID, createdAt: new Date('2022-09-30 16:30:00'), }, lastValidation: VALIDATION_STATE_VALID, nbValidations: 2, }; expect(rule.validate(ticket as unknown as TicketDto)).toBe(true); }); it('invalid ticket validation delay', () => { const ticket = { ...TICKET_UNITAIRE_MULHOUSE, antiPassback: 0, ticketDuration: 4200, firstValidation: { ...VALIDATION_STATE_VALID, createdAt: new Date('2021-09-30 16:30:00'), }, lastValidation: VALIDATION_STATE_VALID, nbValidations: 2, }; expect(rule.validate(ticket as unknown as TicketDto)).toBe(false); }); it('Valid ticket, validate before antiPassback', () => { const ticket = { ...TICKET_UNITAIRE_MULHOUSE, antiPassback: 120, ticketDuration: 4200, firstValidation: { ...VALIDATION_STATE_VALID, createdAt: new Date('2022-09-30 15:27:00'), }, lastValidation: { ...VALIDATION_STATE_VALID, createdAt: new Date('2022-09-30 16:29:00'), }, lastValidValidation: { ...VALIDATION_STATE_VALID, createdAt: new Date('2022-09-30 16:29:00'), }, nbValidations: 2, }; expect(rule.validate(ticket as unknown as TicketDto)).toBe(false); }); });