import { fromJSDateToJSDateStartOfMinute } from './index' describe('datetime - fromJSDateToJSDateStartOfMinute', () => { it.each([ ['America/Phoenix', '2024-01-01T12:00:30.000-07:00', '2024-01-01T12:00:00.000-07:00'], // prettier-ignore ['America/Chicago', '2024-01-01T12:00:30.000-06:00', '2024-01-01T12:00:00.000-06:00'], // prettier-ignore ['America/New_York', '2024-01-01T12:00:30.000-05:00', '2024-01-01T12:00:00.000-05:00'], // prettier-ignore ['America/Montevideo', '2024-01-01T12:00:30.000-03:00', '2024-01-01T12:00:00.000-03:00'], // prettier-ignore ['America/Sao_Paulo', '2024-01-01T12:00:30.000-03:00', '2024-01-01T12:00:00.000-03:00'], // prettier-ignore ['UTC', '2024-01-01T12:00:30.000Z', '2024-01-01T12:00:00.000Z'], ['Europe/London', '2024-01-01T12:00:30.000+00:00', '2024-01-01T12:00:00.000+00:00'], // prettier-ignore ['Europe/Paris', '2024-01-01T12:00:30.000+01:00', '2024-01-01T12:00:00.000+01:00'], // prettier-ignore ['Asia/Tbilisi', '2024-01-01T12:00:30.000+04:00', '2024-01-01T12:00:00.000+04:00'], // prettier-ignore ['Asia/Kolkata', '2024-01-01T12:00:30.000+05:30', '2024-01-01T12:00:00.000+05:30'], // prettier-ignore ])( 'daylightSavingDateTime - timezone=%s, locale=%s', (timezone, input, expected) => expect(fromJSDateToJSDateStartOfMinute(new Date(input), { timezone })).toEqual(new Date(expected)) // prettier-ignore ) it.each([ ['America/Phoenix', '2024-07-01T12:00:30.000-07:00', '2024-07-01T12:00:00.000-07:00'], // prettier-ignore ['America/Chicago', '2024-07-01T12:00:30.000-05:00', '2024-07-01T12:00:00.000-05:00'], // prettier-ignore ['America/New_York', '2024-07-01T12:00:30.000-04:00', '2024-07-01T12:00:00.000-04:00'], // prettier-ignore ['America/Montevideo', '2024-07-01T12:00:30.000-03:00', '2024-07-01T12:00:00.000-03:00'], // prettier-ignore ['America/Sao_Paulo', '2024-07-01T12:00:30.000-03:00', '2024-07-01T12:00:00.000-03:00'], // prettier-ignore ['UTC', '2024-07-01T12:00:30.000Z', '2024-07-01T12:00:00.000Z'], ['Europe/London', '2024-07-01T12:00:30.000+01:00', '2024-07-01T12:00:00.000+01:00'], // prettier-ignore ['Europe/Paris', '2024-07-01T12:00:30.000+02:00', '2024-07-01T12:00:00.000+02:00'], // prettier-ignore ['Asia/Tbilisi', '2024-07-01T12:00:30.000+04:00', '2024-07-01T12:00:00.000+04:00'], // prettier-ignore ['Asia/Kolkata', '2024-07-01T12:00:30.000+05:30', '2024-07-01T12:00:00.000+05:30'], // prettier-ignore ])( 'standardDateTime - timezone=%s, locale=%s', (timezone, input, expected) => expect(fromJSDateToJSDateStartOfMinute(new Date(input), { timezone })).toEqual(new Date(expected)) // prettier-ignore ) it('should throw an error if the input is not a valid date', () => { expect(() => fromJSDateToJSDateStartOfMinute(new Date('invalid'))).toThrow( 'Invalid date string: Invalid Date' ) }) })