import { seedDates, addToDate, getWeekNumberISO8601, } from '../src/helpers/date-helper'; import { ViewMode } from '../src/types/public-types'; describe('seed date', () => { test('daily', () => { expect( seedDates(new Date(2020, 5, 28), new Date(2020, 6, 2), ViewMode.Day) ).toEqual([ new Date(2020, 5, 28), new Date(2020, 5, 29), new Date(2020, 5, 30), new Date(2020, 6, 1), new Date(2020, 6, 2), ]); }); test('weekly', () => { expect( seedDates(new Date(2020, 5, 28), new Date(2020, 6, 19), ViewMode.Week) ).toEqual([ new Date(2020, 5, 28), new Date(2020, 6, 5), new Date(2020, 6, 12), new Date(2020, 6, 19), ]); }); test('monthly', () => { expect( seedDates(new Date(2020, 5, 28), new Date(2020, 6, 19), ViewMode.Month) ).toEqual([new Date(2020, 5, 28), new Date(2020, 6, 28)]); }); test('quarterly', () => { expect( seedDates( new Date(2020, 5, 28), new Date(2020, 5, 29), ViewMode.QuarterDay ) ).toEqual([ new Date(2020, 5, 28, 0, 0), new Date(2020, 5, 28, 6, 0), new Date(2020, 5, 28, 12, 0), new Date(2020, 5, 28, 18, 0), new Date(2020, 5, 29, 0, 0), ]); }); }); describe('add to date', () => { test('add month', () => { expect(addToDate(new Date(2020, 0, 1), 40, 'month')).toEqual( new Date(2023, 4, 1) ); }); test('add day', () => { expect(addToDate(new Date(2020, 0, 1), 40, 'day')).toEqual( new Date(2020, 1, 10) ); }); }); test('get week number', () => { expect(getWeekNumberISO8601(new Date(2019, 11, 31))).toEqual('01'); expect(getWeekNumberISO8601(new Date(2021, 0, 1))).toEqual('53'); expect(getWeekNumberISO8601(new Date(2020, 6, 20))).toEqual('30'); });