import {describe, it, expect, beforeAll} from 'vitest'; import {ZonedDateTime} from '@/'; import importer from '@clarify/zone-data/importer'; import {TimeZone} from '@clarify/zone-data'; describe('ZonedDateTime', () => { describe('#add', () => { let timeZone!: TimeZone; beforeAll(async () => { timeZone = await importer['Europe/Berlin'](); }); it('constrains', async () => { let date = new ZonedDateTime(Date.parse('2024-01-31T15:03:57.265Z'), timeZone); expect(date.add({months: 1}).toString()).toEqual('2024-02-29T16:03:57.265+01:00[Europe/Paris]'); }); it('rejects', async () => { let date = new ZonedDateTime(Date.parse('2024-01-31T15:03:57.265Z'), timeZone); expect(() => { date.add({months: 1}, {overflow: 'reject'}); }).toThrowError(); }); }); });