react-calendar
Version:
Ultimate calendar for your React app.
899 lines (652 loc) • 26.4 kB
text/typescript
import { describe, expect, it } from 'vitest';
import { getDayStart, getDayEnd } from '@wojtekmaj/date-utils';
import {
getDayOfWeek,
getBeginOfCenturyYear,
getBeginOfDecadeYear,
getBeginOfWeek,
getWeekNumber,
getRange,
getBegin,
getBeginPrevious,
getBeginNext,
getBeginPrevious2,
getBeginNext2,
getEnd,
getEndPrevious,
getEndPrevious2,
getValueRange,
getCenturyLabel,
getDecadeLabel,
isWeekend,
} from './dates.js';
describe('getDayOfWeek', () => {
it('returns proper day of the week (ISO 8601)', () => {
const date = new Date(2017, 0, 1);
const dayOfWeek = getDayOfWeek(date, 'iso8601');
expect(dayOfWeek).toBe(6);
});
it('returns proper day of the week (US)', () => {
const date = new Date(2017, 0, 1);
const dayOfWeek = getDayOfWeek(date, 'gregory');
expect(dayOfWeek).toBe(0);
});
it('returns proper day of the week (Islamic)', () => {
const date = new Date(2017, 0, 1);
const dayOfWeek = getDayOfWeek(date, 'islamic');
expect(dayOfWeek).toBe(1);
});
it('returns proper day of the week (Hebrew)', () => {
const date = new Date(2017, 0, 1);
const dayOfWeek = getDayOfWeek(date, 'hebrew');
expect(dayOfWeek).toBe(0);
});
it('returns proper day of the week (default)', () => {
const date = new Date(2017, 0, 1);
const dayOfWeek = getDayOfWeek(date);
expect(dayOfWeek).toBe(6);
});
it('throws an error when given unrecognized calendar type', () => {
const date = new Date(2017, 0, 1);
// @ts-expect-error-next-line
expect(() => getDayOfWeek(date, 'Chinese')).toThrow();
});
});
describe('getBeginOfCenturyYear', () => {
it('returns proper year of the beginning of the century', () => {
const date1 = new Date(2017, 0, 1);
const date2 = new Date(2001, 0, 1);
const date3 = new Date(2000, 0, 1);
const beginOfCenturyYear1 = getBeginOfCenturyYear(date1);
const beginOfCenturyYear2 = getBeginOfCenturyYear(date2);
const beginOfCenturyYear3 = getBeginOfCenturyYear(date3);
expect(beginOfCenturyYear1).toBe(2001);
expect(beginOfCenturyYear2).toBe(2001);
expect(beginOfCenturyYear3).toBe(1901);
});
});
describe('getBeginOfDecadeYear', () => {
it('returns proper year of the beginning of the decade', () => {
const date1 = new Date(2017, 0, 1);
const date2 = new Date(2001, 0, 1);
const date3 = new Date(2000, 0, 1);
const beginOfDecadeYear1 = getBeginOfDecadeYear(date1);
const beginOfDecadeYear2 = getBeginOfDecadeYear(date2);
const beginOfDecadeYear3 = getBeginOfDecadeYear(date3);
expect(beginOfDecadeYear1).toBe(2011);
expect(beginOfDecadeYear2).toBe(2001);
expect(beginOfDecadeYear3).toBe(1991);
});
});
describe('getBeginOfWeek', () => {
it('returns proper beginning of the week (ISO 8601)', () => {
const date = new Date(2017, 0, 1);
const beginOfWeekDate = new Date(2016, 11, 26);
const beginOfWeek = getBeginOfWeek(date, 'iso8601');
expect(beginOfWeek).toEqual(beginOfWeekDate);
});
it('returns proper beginning of the week (US)', () => {
const date = new Date(2016, 0, 1);
const beginOfWeekDate = new Date(2015, 11, 27);
const beginOfWeek = getBeginOfWeek(date, 'gregory');
expect(beginOfWeek).toEqual(beginOfWeekDate);
});
it('returns proper beginning of the week (Islamic)', () => {
const date = new Date(2016, 0, 1);
const beginOfWeekDate = new Date(2015, 11, 26);
const beginOfWeek = getBeginOfWeek(date, 'islamic');
expect(beginOfWeek).toEqual(beginOfWeekDate);
});
it('returns proper beginning of the week (Hebrew)', () => {
const date = new Date(2016, 0, 1);
const beginOfWeekDate = new Date(2015, 11, 27);
const beginOfWeek = getBeginOfWeek(date, 'hebrew');
expect(beginOfWeek).toEqual(beginOfWeekDate);
});
it('returns proper beginning of the week (default)', () => {
const date = new Date(2017, 0, 1);
const beginOfWeekDate = new Date(2016, 11, 26);
const beginOfWeek = getBeginOfWeek(date);
expect(beginOfWeek).toEqual(beginOfWeekDate);
});
});
describe('getWeekNumber', () => {
it('returns proper week number for a sample week 1 (ISO 8601)', () => {
const year = 2018;
const month = 0;
const startDate = 1;
for (let currentDate = startDate; currentDate < startDate + 7; currentDate += 1) {
const date = new Date(year, month, currentDate);
const weekNumber = getWeekNumber(date, 'iso8601');
expect(weekNumber).toBe(1);
}
});
it('returns proper week number for a sample year starting in week 1 (ISO 8601)', () => {
const year = 2018;
const month = 0;
const startDate = 1;
for (let currentWeek = 1; currentWeek <= 52; currentWeek += 1) {
const weekOffset = (currentWeek - 1) * 7;
const date = new Date(year, month, startDate + weekOffset);
const weekNumber = getWeekNumber(date, 'iso8601');
expect(weekNumber).toBe(currentWeek);
}
});
it('returns proper week number for a sample week 52 (ISO 8601)', () => {
const year = 2016;
const month = 11;
const startDate = 26;
for (let currentDate = startDate; currentDate < startDate + 7; currentDate += 1) {
const date = new Date(year, month, currentDate);
const weekNumber = getWeekNumber(date, 'iso8601');
expect(weekNumber).toBe(52);
}
});
it('returns proper week number for a sample week 53 (ISO 8601)', () => {
const year = 2015;
const month = 11;
const startDate = 28;
for (let currentDate = startDate; currentDate < startDate + 7; currentDate += 1) {
const date = new Date(year, month, currentDate);
const weekNumber = getWeekNumber(date, 'iso8601');
expect(weekNumber).toBe(53);
}
});
it('returns proper week number for a sample week 1 (US)', () => {
const year = 2015;
const month = 11;
const startDate = 27;
for (let currentDate = startDate; currentDate < startDate + 7; currentDate += 1) {
const date = new Date(year, month, currentDate);
const weekNumber = getWeekNumber(date, 'gregory');
expect(weekNumber).toBe(1);
}
});
it('returns proper week number for a sample year starting in week 1 (US)', () => {
const year = 2016;
const month = 0;
const startDate = 1;
for (let currentWeek = 1; currentWeek <= 53; currentWeek += 1) {
const weekOffset = (currentWeek - 1) * 7;
const date = new Date(year, month, startDate + weekOffset);
const weekNumber = getWeekNumber(date, 'gregory');
expect(weekNumber).toBe(currentWeek);
}
});
it('returns proper week number for a sample week 52 (US)', () => {
const year = 2017;
const month = 11;
const startDate = 24;
for (let currentDate = startDate; currentDate < startDate + 7; currentDate += 1) {
const date = new Date(year, month, currentDate);
const weekNumber = getWeekNumber(date, 'gregory');
expect(weekNumber).toBe(52);
}
});
it('returns proper week number for a sample week 53 (US)', () => {
const year = 2016;
const month = 11;
const startDate = 25;
for (let currentDate = startDate; currentDate < startDate + 7; currentDate += 1) {
const date = new Date(year, month, currentDate);
const weekNumber = getWeekNumber(date, 'gregory');
expect(weekNumber).toBe(53);
}
});
it('returns proper week number for a sample week 1 (Hebrew)', () => {
const year = 2017;
const month = 0;
const startDate = 1;
for (let currentDate = startDate; currentDate < startDate + 7; currentDate += 1) {
const date = new Date(year, month, currentDate);
const weekNumber = getWeekNumber(date, 'hebrew');
expect(weekNumber).toBe(1);
}
});
it('returns proper week number for a sample year starting in week 1 (Hebrew)', () => {
const year = 2018;
const month = 0;
const startDate = 1;
for (let currentWeek = 1; currentWeek <= 52; currentWeek += 1) {
const weekOffset = (currentWeek - 1) * 7;
const date = new Date(year, month, startDate + weekOffset);
const weekNumber = getWeekNumber(date, 'hebrew');
expect(weekNumber).toBe(currentWeek);
}
});
it('returns proper week number for a sample week 52 (Hebrew)', () => {
const year = 2016;
const month = 11;
const startDate = 25;
for (let currentDate = startDate; currentDate < startDate + 7; currentDate += 1) {
const date = new Date(year, month, currentDate);
const weekNumber = getWeekNumber(date, 'hebrew');
expect(weekNumber).toBe(52);
}
});
it('returns proper week number for a sample week 53 (Hebrew)', () => {
const year = 2014;
const month = 11;
const startDate = 28;
for (let currentDate = startDate; currentDate < startDate + 7; currentDate += 1) {
const date = new Date(year, month, currentDate);
const weekNumber = getWeekNumber(date, 'hebrew');
expect(weekNumber).toBe(53);
}
});
it('returns proper week number for a sample week 1 (Islamic)', () => {
const year = 2022;
const month = 0;
const startDate = 1;
for (let currentDate = startDate; currentDate < startDate + 7; currentDate += 1) {
const date = new Date(year, month, currentDate);
const weekNumber = getWeekNumber(date, 'islamic');
expect(weekNumber).toBe(1);
}
});
it('returns proper week number for a sample year starting in week 1 (Islamic)', () => {
const year = 2018;
const month = 0;
const startDate = 1;
for (let currentWeek = 1; currentWeek <= 52; currentWeek += 1) {
const weekOffset = (currentWeek - 1) * 7;
const date = new Date(year, month, startDate + weekOffset);
const weekNumber = getWeekNumber(date, 'islamic');
expect(weekNumber).toBe(currentWeek);
}
});
it('returns proper week number for a sample week 52 (Islamic)', () => {
const year = 2020;
const month = 11;
const startDate = 26;
for (let currentDate = startDate; currentDate < startDate + 7; currentDate += 1) {
const date = new Date(year, month, currentDate);
const weekNumber = getWeekNumber(date, 'islamic');
expect(weekNumber).toBe(52);
}
});
it('returns proper week number for a sample week 53 (Islamic)', () => {
const year = 2019;
const month = 11;
const startDate = 28;
for (let currentDate = startDate; currentDate < startDate + 7; currentDate += 1) {
const date = new Date(year, month, currentDate);
const weekNumber = getWeekNumber(date, 'islamic');
expect(weekNumber).toBe(53);
}
});
});
describe('getRange', () => {
it('returns proper century range', () => {
const date = new Date(2017, 0, 1);
const beginOfCenturyDate = new Date(2001, 0, 1);
const endOfCenturyDate = new Date(2100, 11, 31, 23, 59, 59, 999);
const centuryRange = getRange('century', date);
expect(centuryRange).toHaveLength(2);
expect(centuryRange).toEqual([beginOfCenturyDate, endOfCenturyDate]);
});
it('returns proper decade range', () => {
const date = new Date(2017, 0, 1);
const beginOfDecadeDate = new Date(2011, 0, 1);
const endOfDecadeDate = new Date(2020, 11, 31, 23, 59, 59, 999);
const decadeRange = getRange('decade', date);
expect(decadeRange).toHaveLength(2);
expect(decadeRange).toEqual([beginOfDecadeDate, endOfDecadeDate]);
});
it('returns proper year range', () => {
const date = new Date(2017, 0, 1);
const beginOfYearDate = new Date(2017, 0, 1);
const endOfYearDate = new Date(2017, 11, 31, 23, 59, 59, 999);
const yearRange = getRange('year', date);
expect(yearRange).toHaveLength(2);
expect(yearRange).toEqual([beginOfYearDate, endOfYearDate]);
});
it('returns proper month range', () => {
const date = new Date(2017, 0, 1);
const beginOfMonthDate = new Date(2017, 0, 1);
const endOfMonthDate = new Date(2017, 0, 31, 23, 59, 59, 999);
const monthRange = getRange('month', date);
expect(monthRange).toHaveLength(2);
expect(monthRange).toEqual([beginOfMonthDate, endOfMonthDate]);
});
it('returns proper day range', () => {
const date = new Date(2017, 0, 1);
const beginOfDayDate = new Date(2017, 0, 1);
const endOfDayDate = new Date(2017, 0, 1, 23, 59, 59, 999);
const dayRange = getRange('day', date);
expect(dayRange).toHaveLength(2);
expect(dayRange).toEqual([beginOfDayDate, endOfDayDate]);
});
it('throws an error when given unrecognized range type', () => {
const date = new Date(2017, 0, 1);
// @ts-expect-error-next-line
expect(() => getRange('hamster', date)).toThrow();
});
});
describe('getBegin', () => {
it('returns proper beginning of the century', () => {
const date = new Date(2017, 0, 1);
const beginOfCenturyDate = new Date(2001, 0, 1);
const beginOfCentury = getBegin('century', date);
expect(beginOfCentury).toEqual(beginOfCenturyDate);
});
it('returns proper beginning of the decade', () => {
const date = new Date(2017, 0, 1);
const beginOfDecadeDate = new Date(2011, 0, 1);
const beginOfDecade = getBegin('decade', date);
expect(beginOfDecade).toEqual(beginOfDecadeDate);
});
it('returns proper beginning of the year', () => {
const date = new Date(2017, 0, 1);
const beginOfYearDate = new Date(2017, 0, 1);
const beginOfYear = getBegin('year', date);
expect(beginOfYear).toEqual(beginOfYearDate);
});
it('returns proper beginning of the month', () => {
const date = new Date(2017, 0, 1);
const beginOfMonthDate = new Date(2017, 0, 1);
const monthRange = getBegin('month', date);
expect(monthRange).toEqual(beginOfMonthDate);
});
it('returns proper beginning of the day', () => {
const date = new Date(2017, 0, 1);
const beginOfDayDate = new Date(2017, 0, 1);
const beginOfDay = getBegin('day', date);
expect(beginOfDay).toEqual(beginOfDayDate);
});
it('throws an error when given unrecognized range type', () => {
const date = new Date(2017, 0, 1);
// @ts-expect-error-next-line
expect(() => getBegin('hamster', date)).toThrow();
});
});
describe('getBeginPrevious', () => {
it('returns proper beginning of the previous century', () => {
const date = new Date(2017, 0, 1);
const beginOfCenturyDate = new Date(1901, 0, 1);
const beginOfCentury = getBeginPrevious('century', date);
expect(beginOfCentury).toEqual(beginOfCenturyDate);
});
it('returns proper beginning of the previous decade', () => {
const date = new Date(2017, 0, 1);
const beginOfDecadeDate = new Date(2001, 0, 1);
const beginOfDecade = getBeginPrevious('decade', date);
expect(beginOfDecade).toEqual(beginOfDecadeDate);
});
it('returns proper beginning of the previous year', () => {
const date = new Date(2017, 0, 1);
const beginOfYearDate = new Date(2016, 0, 1);
const beginOfYear = getBeginPrevious('year', date);
expect(beginOfYear).toEqual(beginOfYearDate);
});
it('returns proper beginning of the previous month', () => {
const date = new Date(2017, 0, 1);
const beginOfMonthDate = new Date(2016, 11, 1);
const monthRange = getBeginPrevious('month', date);
expect(monthRange).toEqual(beginOfMonthDate);
});
it('throws an error when given unrecognized range type', () => {
const date = new Date(2017, 0, 1);
// @ts-expect-error-next-line
expect(() => getBeginPrevious('hamster', date)).toThrow();
});
});
describe('getBeginNext', () => {
it('returns proper beginning of the next century', () => {
const date = new Date(2017, 0, 1);
const beginOfCenturyDate = new Date(2101, 0, 1);
const beginOfCentury = getBeginNext('century', date);
expect(beginOfCentury).toEqual(beginOfCenturyDate);
});
it('returns proper beginning of the next decade', () => {
const date = new Date(2017, 0, 1);
const beginOfDecadeDate = new Date(2021, 0, 1);
const beginOfDecade = getBeginNext('decade', date);
expect(beginOfDecade).toEqual(beginOfDecadeDate);
});
it('returns proper beginning of the next year', () => {
const date = new Date(2017, 0, 1);
const beginOfYearDate = new Date(2018, 0, 1);
const beginOfYear = getBeginNext('year', date);
expect(beginOfYear).toEqual(beginOfYearDate);
});
it('returns proper beginning of the next month', () => {
const date = new Date(2017, 0, 1);
const beginOfMonthDate = new Date(2017, 1, 1);
const monthRange = getBeginNext('month', date);
expect(monthRange).toEqual(beginOfMonthDate);
});
it('throws an error when given unrecognized range type', () => {
const date = new Date(2017, 0, 1);
// @ts-expect-error-next-line
expect(() => getBeginNext('hamster', date)).toThrow();
});
});
describe('getBeginPrevious2', () => {
it('returns proper beginning of the decade 10 decades ago', () => {
const date = new Date(2017, 0, 1);
const beginOfPreviousCenturyDate = new Date(1911, 0, 1);
const beginOfPreviousCentury = getBeginPrevious2('decade', date);
expect(beginOfPreviousCentury).toEqual(beginOfPreviousCenturyDate);
});
it('returns proper beginning of the year 10 years ago', () => {
const date = new Date(2017, 0, 1);
const beginOfPreviousDecadeDate = new Date(2007, 0, 1);
const beginOfPreviousDecade = getBeginPrevious2('year', date);
expect(beginOfPreviousDecade).toEqual(beginOfPreviousDecadeDate);
});
it('returns proper beginning of the month 1 year ago', () => {
const date = new Date(2017, 0, 1);
const beginOfPreviousYearDate = new Date(2016, 0, 1);
const beginOfPreviousYear = getBeginPrevious2('month', date);
expect(beginOfPreviousYear).toEqual(beginOfPreviousYearDate);
});
it('throws an error when given unrecognized range type', () => {
const date = new Date(2017, 0, 1);
// @ts-expect-error-next-line
expect(() => getBeginPrevious2('hamster', date)).toThrow();
});
});
describe('getBeginNext2', () => {
it('returns proper beginning of the decade 10 decades ahead', () => {
const date = new Date(2017, 0, 1);
const beginOfNextCenturyDate = new Date(2111, 0, 1);
const beginOfNextCentury = getBeginNext2('decade', date);
expect(beginOfNextCentury).toEqual(beginOfNextCenturyDate);
});
it('returns proper beginning of the year 10 years ahead', () => {
const date = new Date(2017, 0, 1);
const beginOfNextDecadeDate = new Date(2027, 0, 1);
const beginOfNextDecade = getBeginNext2('year', date);
expect(beginOfNextDecade).toEqual(beginOfNextDecadeDate);
});
it('returns proper beginning of the month 1 year ahead', () => {
const date = new Date(2017, 0, 1);
const beginOfNextYearDate = new Date(2018, 0, 1);
const beginOfNextYear = getBeginNext2('month', date);
expect(beginOfNextYear).toEqual(beginOfNextYearDate);
});
it('throws an error when given unrecognized range type', () => {
const date = new Date(2017, 0, 1);
// @ts-expect-error-next-line
expect(() => getBeginNext2('hamster', date)).toThrow();
});
});
describe('getEnd', () => {
it('returns proper end of the century', () => {
const date = new Date(2017, 0, 1);
const endOfCenturyDate = new Date(2100, 11, 31, 23, 59, 59, 999);
const endOfCentury = getEnd('century', date);
expect(endOfCentury).toEqual(endOfCenturyDate);
});
it('returns proper end of the decade', () => {
const date = new Date(2017, 0, 1);
const endOfDecadeDate = new Date(2020, 11, 31, 23, 59, 59, 999);
const endOfDecade = getEnd('decade', date);
expect(endOfDecade).toEqual(endOfDecadeDate);
});
it('returns proper end of the year', () => {
const date = new Date(2017, 0, 1);
const endOfYearDate = new Date(2017, 11, 31, 23, 59, 59, 999);
const endOfYear = getEnd('year', date);
expect(endOfYear).toEqual(endOfYearDate);
});
it('returns proper end of the month', () => {
const date = new Date(2017, 0, 1);
const endOfMonthDate = new Date(2017, 0, 31, 23, 59, 59, 999);
const monthRange = getEnd('month', date);
expect(monthRange).toEqual(endOfMonthDate);
});
it('returns proper end of the day', () => {
const date = new Date(2017, 0, 1);
const endOfDayDate = new Date(2017, 0, 1, 23, 59, 59, 999);
const endOfDay = getEnd('day', date);
expect(endOfDay).toEqual(endOfDayDate);
});
it('throws an error when given unrecognized range type', () => {
const date = new Date(2017, 0, 1);
// @ts-expect-error-next-line
expect(() => getEnd('hamster', date)).toThrow();
});
});
describe('getEndPrevious', () => {
it('returns proper end of the previous century', () => {
const date = new Date(2017, 0, 1);
const endOfCenturyDate = new Date(2000, 11, 31, 23, 59, 59, 999);
const endOfCentury = getEndPrevious('century', date);
expect(endOfCentury).toEqual(endOfCenturyDate);
});
it('returns proper end of the previous decade', () => {
const date = new Date(2017, 0, 1);
const endOfDecadeDate = new Date(2010, 11, 31, 23, 59, 59, 999);
const endOfDecade = getEndPrevious('decade', date);
expect(endOfDecade).toEqual(endOfDecadeDate);
});
it('returns proper end of the previous year', () => {
const date = new Date(2017, 0, 1);
const endOfYearDate = new Date(2016, 11, 31, 23, 59, 59, 999);
const endOfYear = getEndPrevious('year', date);
expect(endOfYear).toEqual(endOfYearDate);
});
it('returns proper end of the previous month', () => {
const date = new Date(2017, 0, 1);
const endOfMonthDate = new Date(2016, 11, 31, 23, 59, 59, 999);
const monthRange = getEndPrevious('month', date);
expect(monthRange).toEqual(endOfMonthDate);
});
it('throws an error when given unrecognized range type', () => {
const date = new Date(2017, 0, 1);
// @ts-expect-error-next-line
expect(() => getEndPrevious('hamster', date)).toThrow();
});
});
describe('getEndPrevious2', () => {
it('returns proper end of the decade 10 decades ago', () => {
const date = new Date(2017, 0, 1);
const endOfPreviousCenturyDate = new Date(1920, 11, 31, 23, 59, 59, 999);
const endOfPreviousCentury = getEndPrevious2('decade', date);
expect(endOfPreviousCentury).toEqual(endOfPreviousCenturyDate);
});
it('returns proper end of the year 10 years ago', () => {
const date = new Date(2017, 0, 1);
const endOfPreviousDecadeDate = new Date(2007, 11, 31, 23, 59, 59, 999);
const endOfPreviousDecade = getEndPrevious2('year', date);
expect(endOfPreviousDecade).toEqual(endOfPreviousDecadeDate);
});
it('returns proper end of the month 1 year ago', () => {
const date = new Date(2017, 0, 1);
const endOfPreviousYearDate = new Date(2016, 0, 31, 23, 59, 59, 999);
const endOfPreviousYear = getEndPrevious2('month', date);
expect(endOfPreviousYear).toEqual(endOfPreviousYearDate);
});
it('throws an error when given unrecognized range type', () => {
const date = new Date(2017, 0, 1);
// @ts-expect-error-next-line
expect(() => getEndPrevious2('hamster', date)).toThrow();
});
});
describe('getValueRange', () => {
it('returns an array of dates given two ordered dates', () => {
const date1 = new Date(2018, 0, 1);
const date2 = new Date(2018, 6, 1);
const range = getValueRange('day', date1, date2);
expect(range).toEqual([getDayStart(date1), getDayEnd(date2)]);
});
it('returns an array of dates given two unordered dates', () => {
const date1 = new Date(2018, 6, 1);
const date2 = new Date(2018, 0, 1);
const range = getValueRange('day', date1, date2);
expect(range).toEqual([getDayStart(date2), getDayEnd(date1)]);
});
});
describe('getCenturyLabel', () => {
it('returns proper label for the century a given date is in', () => {
const date = new Date(2017, 0, 1);
const centuryLabel = getCenturyLabel('en-US', undefined, date);
expect(centuryLabel).toBe('2001 – 2100');
});
});
describe('getDecadeLabel', () => {
it('returns proper label for the decade a given date is in', () => {
const date = new Date(2017, 0, 1);
const decadeLabel = getDecadeLabel('en-US', undefined, date);
expect(decadeLabel).toBe('2011 – 2020');
});
});
describe('isWeekend', () => {
describe('returns proper flag (ISO 8601)', () => {
it.each`
date | flag
${new Date(2016, 11, 30)} | ${false}
${new Date(2016, 11, 31)} | ${true}
${new Date(2017, 0, 1)} | ${true}
${new Date(2017, 0, 2)} | ${false}
`('returns $flag for $date', ({ date, flag }) => {
expect(isWeekend(date, 'iso8601')).toBe(flag);
});
});
describe('returns proper flag (Gregory)', () => {
it.each`
date | flag
${new Date(2016, 11, 30)} | ${false}
${new Date(2016, 11, 31)} | ${true}
${new Date(2017, 0, 1)} | ${true}
${new Date(2017, 0, 2)} | ${false}
`('returns $flag for $date', ({ date, flag }) => {
expect(isWeekend(date, 'gregory')).toBe(flag);
});
});
describe('returns proper flag (Hebrew)', () => {
it.each`
date | flag
${new Date(2016, 11, 30)} | ${true}
${new Date(2016, 11, 31)} | ${true}
${new Date(2017, 0, 1)} | ${false}
${new Date(2017, 0, 2)} | ${false}
`('returns $flag for $date', ({ date, flag }) => {
expect(isWeekend(date, 'hebrew')).toBe(flag);
});
});
describe('returns proper flag (Islamic)', () => {
it.each`
date | flag
${new Date(2016, 11, 30)} | ${true}
${new Date(2016, 11, 31)} | ${true}
${new Date(2017, 0, 1)} | ${false}
${new Date(2017, 0, 2)} | ${false}
`('returns $flag for $date', ({ date, flag }) => {
expect(isWeekend(date, 'islamic')).toBe(flag);
});
});
describe('returns proper flag (default)', () => {
it.each`
date | flag
${new Date(2016, 11, 30)} | ${false}
${new Date(2016, 11, 31)} | ${true}
${new Date(2017, 0, 1)} | ${true}
${new Date(2017, 0, 2)} | ${false}
`('returns $flag for $date', ({ date, flag }) => {
expect(isWeekend(date)).toBe(flag);
});
});
});