import {describe, it, expect} from 'vitest'; import {ZonedDateTime} from '@/'; describe('ZonedDateTime', () => { describe('.weekOfYear', () => { describe('year starts on monday', () => { it('Europe/Oslo', async () => { let date = new ZonedDateTime(Date.parse('2024-03-08T15:03:57.265Z'), 'Europe/Oslo'); expect(date.weekOfYear).toEqual(10); }); it('calculates correct for end of week', async () => { let date = new ZonedDateTime(Date.parse('2024-03-17T15:03:57.265Z'), 'Europe/Oslo'); expect(date.weekOfYear).toEqual(11); }); it('calculates correct for start of day at start of week', async () => { let date = new ZonedDateTime(Date.parse('2024-03-18T15:03:57.265Z'), 'Europe/Oslo'); expect(date.startOfDay().weekOfYear).toEqual(12); }); it('Europe/Oslo', async () => { let date = new ZonedDateTime(Date.parse('2024-03-03T15:03:57.265Z'), 'Europe/Oslo'); expect(date.weekOfYear).toEqual(9); }); }); describe('year starts on friday', () => { it('Europe/Oslo', async () => { let date = new ZonedDateTime(Date.parse('2027-03-08T15:03:57.265Z'), 'Europe/Oslo'); expect(date.weekOfYear).toEqual(10); }); it('Europe/Oslo', async () => { let date = new ZonedDateTime(Date.parse('2027-03-18T15:03:57.265Z'), 'Europe/Oslo'); expect(date.weekOfYear).toEqual(11); }); it('Europe/Oslo', async () => { let date = new ZonedDateTime(Date.parse('2027-03-03T15:03:57.265Z'), 'Europe/Oslo'); expect(date.weekOfYear).toEqual(9); }); }); }); });