import { TicketDto } from '../src/interfaces/ticket/ticket.dto'; import { UserId } from '../src/rules/ticket/user-id'; import { TICKET_ABO_MENSUEL_26_64_ANS, TICKET_UNITAIRE_MULHOUSE } from './test-config'; describe('User Id', () => { const rule = new UserId(); beforeAll(async () => { jest .spyOn(global.Date, 'now') .mockImplementation(() => new Date('2022-09-30 16:30:00').valueOf()); }); it('valid user id', () => { expect( rule.validate( TICKET_UNITAIRE_MULHOUSE as unknown as TicketDto, '8baa9894-81ff-43a7-9164-bb8267cdf9df', ), ).toBe(true); }); it('Invalid, on user id', () => { const ticketWithPassenger = { ...TICKET_UNITAIRE_MULHOUSE, passengers: [{ id: 'passenger-1' }], }; expect(rule.validate(ticketWithPassenger as unknown as TicketDto, '')).toBe(false); }); it('Valid ticket, no passengers', () => { const ticket = { ...TICKET_UNITAIRE_MULHOUSE, passengers: [], }; expect( rule.validate(ticket as unknown as TicketDto, '8baa9894-81ff-43a7-9164-bb8267cdf9df'), ).toBe(true); }); // Ticket mensuel 26-64 ans it('Valid ticket, have passenger', () => { expect( new UserId().validate( TICKET_ABO_MENSUEL_26_64_ANS as unknown as TicketDto, 'f09c2f2b-280d-414a-9f1a-1175a6677881', ), ).toBe(true); }); it('Valid ticket, no passengers', () => { const ticket = { ...TICKET_UNITAIRE_MULHOUSE, passengers: [], }; expect( rule.validate(ticket as unknown as TicketDto, '8baa9894-81ff-43a7-9164-bb8267cdf9df'), ).toBe(true); }); });