UNPKG

kk-date

Version:

kk-date is a fastest JavaScript library that parses, validations, manipulates, and displays dates and times. If you use Moment.js or Day.js already you can easily use kk-date.

86 lines (74 loc) 3.74 kB
const { describe, test, expect } = require('@jest/globals'); const kk_date = require('../index'); describe('weekStartDay tests for startOf and endOf', () => { test('should return Sunday as startOf and Saturday as endOf when weekStartDay is 0', () => { const date = new kk_date(); date.config({ weekStartDay: 0 }); expect(date.startOf('weeks').format('dddd')).toBe('Sunday'); expect(date.endOf('weeks').format('dddd')).toBe('Saturday'); }); test('should return Monday as startOf and Sunday as endOf when weekStartDay is 1', () => { const date = new kk_date(); date.config({ weekStartDay: 1 }); expect(date.startOf('weeks').format('dddd')).toBe('Monday'); expect(date.endOf('weeks').format('dddd')).toBe('Sunday'); }); test('should return Tuesday as startOf and Monday as endOf when weekStartDay is 2', () => { const date = new kk_date(); date.config({ weekStartDay: 2 }); expect(date.startOf('weeks').format('dddd')).toBe('Tuesday'); expect(date.endOf('weeks').format('dddd')).toBe('Monday'); }); test('should return Wednesday as startOf and Tuesday as endOf when weekStartDay is 3', () => { const date = new kk_date(); date.config({ weekStartDay: 3 }); expect(date.startOf('weeks').format('dddd')).toBe('Wednesday'); expect(date.endOf('weeks').format('dddd')).toBe('Tuesday'); }); test('should return Thursday as startOf and Wednesday as endOf when weekStartDay is 4', () => { const date = new kk_date(); date.config({ weekStartDay: 4 }); expect(date.startOf('weeks').format('dddd')).toBe('Thursday'); expect(date.endOf('weeks').format('dddd')).toBe('Wednesday'); }); test('should return Friday as startOf and Thursday as endOf when weekStartDay is 5', () => { const date = new kk_date(); date.config({ weekStartDay: 5 }); expect(date.startOf('weeks').format('dddd')).toBe('Friday'); expect(date.endOf('weeks').format('dddd')).toBe('Thursday'); }); test('should return Saturday as startOf and Friday as endOf when weekStartDay is 6', () => { const date = new kk_date(); date.config({ weekStartDay: 6 }); expect(date.startOf('weeks').format('dddd')).toBe('Saturday'); expect(date.endOf('weeks').format('dddd')).toBe('Friday'); }); test('should return Sunday as startOf and Saturday as endOf when weekStartDay is a string', () => { const date = new kk_date(); date.config({ weekStartDay: 'test' }); expect(date.startOf('weeks').format('dddd')).toBe('Sunday'); expect(date.endOf('weeks').format('dddd')).toBe('Saturday'); }); test('should default to Sunday as startOf and Saturday as endOf when weekStartDay is not provided', () => { const date = new kk_date(); date.config({}); expect(date.startOf('weeks').format('dddd')).toBe('Sunday'); expect(date.endOf('weeks').format('dddd')).toBe('Saturday'); }); test('should throw an error when weekStartDay', () => { expect(() => new kk_date().config({ weekStartDay: 8 })).toThrow(); }); test('Should be six days weekStartDay when 0-1 is entered, the difference between the start and end ', () => { kk_date.config({ weekStartDay: 0 }); const kkdate1 = new kk_date(); expect(new kk_date(kkdate1.startOf('weeks')).diff(new kk_date(kkdate1.endOf('weeks')), 'days')).toBe(6); kk_date.config({ weekStartDay: 2 }); const kkdate2 = new kk_date(); expect(new kk_date(kkdate2.startOf('weeks')).diff(new kk_date(kkdate2.endOf('weeks')), 'days')).toBe(6); }); test('Should be six days weekStartDay when random 0-6 is entered, the difference between the start and end ', () => { kk_date.config({ weekStartDay: Math.floor(Math.random() * 7) }); const kkdate1 = new kk_date(); expect(new kk_date(kkdate1.startOf('weeks')).diff(new kk_date(kkdate1.endOf('weeks')), 'days')).toBe(6); }); });