import { fromDateOnlyStringToDateString } from './index' describe('datetime - fromDateOnlyStringToDateString', () => { const daylightSavingDateTime = '2024-01-01' const standardDateTime = '2024-07-01' it.each([ ['America/Phoenix', 'en-US', '2024-01-01T00:00:00.000-07:00'], ['America/Chicago', 'en-US', '2024-01-01T00:00:00.000-06:00'], ['America/New_York', 'en-US', '2024-01-01T00:00:00.000-05:00'], ['America/Montevideo', 'es-UY', '2024-01-01T00:00:00.000-03:00'], ['America/Sao_Paulo', 'pt-BR', '2024-01-01T00:00:00.000-03:00'], ['UTC', 'en-US', '2024-01-01T00:00:00.000Z'], ['UTC', 'en-GB', '2024-01-01T00:00:00.000Z'], ['Europe/London', 'en-GB', '2024-01-01T00:00:00.000+00:00'], ['Europe/Paris', 'fr-FR', '2024-01-01T00:00:00.000+01:00'], ['Asia/Tbilisi', 'ka-GE', '2024-01-01T00:00:00.000+04:00'], ['Asia/Kolkata', 'hi-IN', '2024-01-01T00:00:00.000+05:30'], ])( 'daylightSavingDateTime - timezone=%s, locale=%s', (timezone, locale, expected) => expect( fromDateOnlyStringToDateString(daylightSavingDateTime, { timezone, locale, }) ).toBe(expected) ) it.each([ ['America/Phoenix', 'en-US', '2024-07-01T00:00:00.000-07:00'], ['America/Chicago', 'en-US', '2024-07-01T00:00:00.000-05:00'], ['America/New_York', 'en-US', '2024-07-01T00:00:00.000-04:00'], ['America/Montevideo', 'es-UY', '2024-07-01T00:00:00.000-03:00'], ['America/Sao_Paulo', 'pt-BR', '2024-07-01T00:00:00.000-03:00'], ['UTC', 'en-US', '2024-07-01T00:00:00.000Z'], ['UTC', 'en-GB', '2024-07-01T00:00:00.000Z'], ['Europe/London', 'en-GB', '2024-07-01T00:00:00.000+01:00'], ['Europe/Paris', 'fr-FR', '2024-07-01T00:00:00.000+02:00'], ['Asia/Tbilisi', 'ka-GE', '2024-07-01T00:00:00.000+04:00'], ['Asia/Kolkata', 'hi-IN', '2024-07-01T00:00:00.000+05:30'], ])( 'standardDateTime - timezone=%s, locale=%s', (timezone, locale, expected) => expect( fromDateOnlyStringToDateString(standardDateTime, { timezone, locale, }) ).toBe(expected) ) it.each([ ['invalid'], ['2024-01-01T00:00:00.000-07:00'], ['2024-01-01T00:00:00.000Z'], [false], [true], [null], [undefined], [[]], [{}], ])('throws an error when the date string is invalid', invalidDate => // @ts-expect-error invalid input expect(() => fromDateOnlyStringToDateString(invalidDate)).toThrow( `Invalid date string: ${invalidDate}` ) ) })