import {ZonedDateTime, ZonedDateTimeLike} from '@/zoned-date-time.js'; import {describe, it, assert} from 'vitest'; type ZonedDateTimeWithParameters = Parameters; let testCases: [ZonedDateTimeLike, ZonedDateTimeWithParameters[0], string][] = [ ['2024-10-27T00:00[Europe/Oslo]', {hour: 2}, '2024-10-27T02:00:00.000+02:00[Europe/Oslo]'], [ '2013-10-27T02:00:01+01:00[Europe/Oslo]', {minute: 0, second: 0, millisecond: 0}, '2013-10-27T02:00:00.000+01:00[Europe/Oslo]', ], ]; describe('ZonedDateTime', () => { describe('#with', () => { it.each(testCases)('%j.with() -> %j', (result, param1, expected) => { let date = ZonedDateTime.from(result); let withDate = date.with(param1); assert.equal(withDate.toString({fractionalSecondDigits: 3}), expected); }); }); });