import { addDays, Interval, set } from 'date-fns'; import { fromZonedTime } from 'date-fns-tz'; import { generateIntervalForTimeRange } from './helper'; describe('avicennaApiUtilHelper', () => { describe('generateIntervalForTimeRange', () => { it('should throw an error when the timeRange format is invalid', () => { expect(() => generateIntervalForTimeRange('42:00;06:09')).toThrow(); }); it('should generate an interval for the specified time range on the current day', () => { const result: Interval = { start: fromZonedTime( set(new Date(), { hours: 12, minutes: 0, seconds: 0, milliseconds: 0, }), 'Europe/Berlin', ), end: fromZonedTime( set(new Date(), { hours: 13, minutes: 0, seconds: 0, milliseconds: 0, }), 'Europe/Berlin', ), }; expect( generateIntervalForTimeRange('12:00-13:00', 'Europe/Berlin'), ).toStrictEqual(result); }); it('should generate an interval which spans over two days, if the second time is lower than the first', () => { const result: Interval = { start: fromZonedTime( set(new Date(), { hours: 12, minutes: 0, seconds: 0, milliseconds: 0, }), 'Europe/Berlin', ), end: fromZonedTime( set(addDays(new Date(), 1), { hours: 1, minutes: 0, seconds: 0, milliseconds: 0, }), 'Europe/Berlin', ), }; expect( generateIntervalForTimeRange('12:00-01:00', 'Europe/Berlin'), ).toStrictEqual(result); }); }); });