UNPKG

axiom-react-calendar

Version:

A component for picking dates or date periods for your React application.

1,151 lines (831 loc) 34.4 kB
'use strict'; var _dates = require('../dates'); describe('getYear', function () { it('returns proper year for a given date', function () { var date = new Date(2017, 0, 1); var year = (0, _dates.getYear)(date); expect(year).toBe(2017); }); it('returns proper year for a given number', function () { var date = 2017; var year = (0, _dates.getYear)(date); expect(year).toBe(2017); }); it('returns proper year for a given string', function () { var date = '2017'; var year = (0, _dates.getYear)(date); expect(year).toBe(2017); }); it('throws an error when given nonsense data', function () { var text = 'wololo'; var flag = true; expect(function () { return (0, _dates.getYear)(text); }).toThrow(); expect(function () { return (0, _dates.getYear)(flag); }).toThrow(); expect(function () { return (0, _dates.getYear)(); }).toThrow(); }); }); describe('getMonth', function () { it('returns proper month', function () { var date = new Date(2017, 0, 1); var monthIndex = (0, _dates.getMonth)(date); expect(monthIndex).toBe(1); }); }); describe('getMonthIndex', function () { it('returns proper month index', function () { var date = new Date(2017, 0, 1); var monthIndex = (0, _dates.getMonthIndex)(date); expect(monthIndex).toBe(0); }); }); describe('getDay', function () { it('returns proper day', function () { var date = new Date(2017, 0, 1); var day = (0, _dates.getDay)(date); expect(day).toBe(1); }); }); describe('getDayOfWeek', function () { it('returns proper day of the week (ISO 8601)', function () { var date = new Date(2017, 0, 1); var dayOfWeek = (0, _dates.getDayOfWeek)(date, 'ISO 8601'); expect(dayOfWeek).toBe(6); }); it('returns proper day of the week (US)', function () { var date = new Date(2017, 0, 1); var dayOfWeek = (0, _dates.getDayOfWeek)(date, 'US'); expect(dayOfWeek).toBe(0); }); it('returns proper day of the week (default)', function () { var date = new Date(2017, 0, 1); var dayOfWeek = (0, _dates.getDayOfWeek)(date); expect(dayOfWeek).toBe(6); }); it('throws an error when given unrecognized calendar type', function () { var date = new Date(2017, 0, 1); expect(function () { return (0, _dates.getDayOfWeek)(date, 'Chinese'); }).toThrow(); }); }); describe('getBeginOfCenturyYear', function () { it('returns proper year of the beginning of the century', function () { var date1 = new Date(2017, 0, 1); var date2 = new Date(2001, 0, 1); var date3 = new Date(2000, 0, 1); var beginOfCenturyYear1 = (0, _dates.getBeginOfCenturyYear)(date1); var beginOfCenturyYear2 = (0, _dates.getBeginOfCenturyYear)(date2); var beginOfCenturyYear3 = (0, _dates.getBeginOfCenturyYear)(date3); expect(beginOfCenturyYear1).toBe(2001); expect(beginOfCenturyYear2).toBe(2001); expect(beginOfCenturyYear3).toBe(1901); }); }); describe('getBeginOfCentury', function () { it('returns proper beginning of the century', function () { var date = new Date(2017, 0, 1); var beginOfCenturyDate = new Date(2001, 0, 1); var beginOfCentury = (0, _dates.getBeginOfCentury)(date); expect(beginOfCentury).toEqual(beginOfCenturyDate); }); }); describe('getEndOfCentury', function () { it('returns proper end of the century', function () { var date = new Date(2017, 0, 1); var endOfCenturyDate = new Date(2100, 11, 31, 23, 59, 59, 999); var endOfCentury = (0, _dates.getEndOfCentury)(date); expect(endOfCentury).toEqual(endOfCenturyDate); }); }); describe('getCenturyRange', function () { it('returns proper century date range', function () { var date = new Date(2017, 0, 1); var beginOfCenturyDate = new Date(2001, 0, 1); var endOfCenturyDate = new Date(2100, 11, 31, 23, 59, 59, 999); var centuryRange = (0, _dates.getCenturyRange)(date); expect(centuryRange).toHaveLength(2); expect(centuryRange).toEqual([beginOfCenturyDate, endOfCenturyDate]); }); }); describe('getBeginPreviousOfCentury', function () { it('returns proper beginning of the previous century', function () { var date = new Date(2017, 0, 1); var beginOfPreviousCenturyDate = new Date(1901, 0, 1); var beginOfPreviousCentury = (0, _dates.getBeginOfPreviousCentury)(date); expect(beginOfPreviousCentury).toEqual(beginOfPreviousCenturyDate); }); }); describe('getEndOfPreviousCentury', function () { it('returns proper end of the previous century', function () { var date = new Date(2017, 0, 1); var endOfPreviousCenturyDate = new Date(2000, 11, 31, 23, 59, 59, 999); var endOfPreviousCentury = (0, _dates.getEndOfPreviousCentury)(date); expect(endOfPreviousCentury).toEqual(endOfPreviousCenturyDate); }); }); describe('getBeginOfNextCentury', function () { it('returns proper beginning of the next century', function () { var date = new Date(2017, 0, 1); var beginOfNextCenturyDate = new Date(2101, 0, 1); var beginOfNextCentury = (0, _dates.getBeginOfNextCentury)(date); expect(beginOfNextCentury).toEqual(beginOfNextCenturyDate); }); }); describe('getBeginOfDecadeYear', function () { it('returns proper year of the beginning of the decade', function () { var date1 = new Date(2017, 0, 1); var date2 = new Date(2001, 0, 1); var date3 = new Date(2000, 0, 1); var beginOfDecadeYear1 = (0, _dates.getBeginOfDecadeYear)(date1); var beginOfDecadeYear2 = (0, _dates.getBeginOfDecadeYear)(date2); var beginOfDecadeYear3 = (0, _dates.getBeginOfDecadeYear)(date3); expect(beginOfDecadeYear1).toBe(2011); expect(beginOfDecadeYear2).toBe(2001); expect(beginOfDecadeYear3).toBe(1991); }); }); describe('getBeginOfDecade', function () { it('returns proper beginning of the decade', function () { var date = new Date(2017, 0, 1); var beginOfDecadeDate = new Date(2011, 0, 1); var beginOfDecade = (0, _dates.getBeginOfDecade)(date); expect(beginOfDecade).toEqual(beginOfDecadeDate); }); }); describe('getEndOfDecade', function () { it('returns proper end of the decade', function () { var date = new Date(2017, 0, 1); var endOfDecadeDate = new Date(2020, 11, 31, 23, 59, 59, 999); var endOfDecade = (0, _dates.getEndOfDecade)(date); expect(endOfDecade).toEqual(endOfDecadeDate); }); }); describe('getDecadeRange', function () { it('returns proper decade date range', function () { var date = new Date(2017, 0, 1); var beginOfDecadeDate = new Date(2011, 0, 1); var endOfDecadeDate = new Date(2020, 11, 31, 23, 59, 59, 999); var decadeRange = (0, _dates.getDecadeRange)(date); expect(decadeRange).toHaveLength(2); expect(decadeRange).toEqual([beginOfDecadeDate, endOfDecadeDate]); }); }); describe('getBeginPreviousOfDecade', function () { it('returns proper beginning of the previous decade', function () { var date = new Date(2017, 0, 1); var beginOfPreviousDecadeDate = new Date(2001, 0, 1); var beginOfPreviousDecade = (0, _dates.getBeginOfPreviousDecade)(date); expect(beginOfPreviousDecade).toEqual(beginOfPreviousDecadeDate); }); }); describe('getEndOfPreviousDecade', function () { it('returns proper end of the previous decade', function () { var date = new Date(2017, 0, 1); var endOfPreviousDecadeDate = new Date(2010, 11, 31, 23, 59, 59, 999); var endOfPreviousDecade = (0, _dates.getEndOfPreviousDecade)(date); expect(endOfPreviousDecade).toEqual(endOfPreviousDecadeDate); }); }); describe('getBeginOfNextDecade', function () { it('returns proper beginning of the next decade', function () { var date = new Date(2017, 0, 1); var beginOfNextDecadeDate = new Date(2021, 0, 1); var beginOfNextDecade = (0, _dates.getBeginOfNextDecade)(date); expect(beginOfNextDecade).toEqual(beginOfNextDecadeDate); }); }); describe('getBeginOfYear', function () { it('returns proper beginning of the year', function () { var date = new Date(2017, 0, 1); var beginOfYearDate = new Date(2017, 0, 1); var beginOfYear = (0, _dates.getBeginOfYear)(date); expect(beginOfYear).toEqual(beginOfYearDate); }); }); describe('getEndOfYear', function () { it('returns proper end of the year', function () { var date = new Date(2017, 0, 1); var endOfYearDate = new Date(2017, 11, 31, 23, 59, 59, 999); var endOfYear = (0, _dates.getEndOfYear)(date); expect(endOfYear).toEqual(endOfYearDate); }); }); describe('getYearRange', function () { it('returns proper year date range', function () { var date = new Date(2017, 0, 1); var beginOfYearDate = new Date(2017, 0, 1); var endOfYearDate = new Date(2017, 11, 31, 23, 59, 59, 999); var yearRange = (0, _dates.getYearRange)(date); expect(yearRange).toHaveLength(2); expect(yearRange).toEqual([beginOfYearDate, endOfYearDate]); }); }); describe('getBeginPreviousOfYear', function () { it('returns proper beginning of the previous year', function () { var date = new Date(2017, 0, 1); var beginOfPreviousYearDate = new Date(2016, 0, 1); var beginOfPreviousYear = (0, _dates.getBeginOfPreviousYear)(date); expect(beginOfPreviousYear).toEqual(beginOfPreviousYearDate); }); }); describe('getEndOfPreviousYear', function () { it('returns proper end of the previous year', function () { var date = new Date(2017, 0, 1); var endOfPreviousYearDate = new Date(2016, 11, 31, 23, 59, 59, 999); var endOfPreviousYear = (0, _dates.getEndOfPreviousYear)(date); expect(endOfPreviousYear).toEqual(endOfPreviousYearDate); }); }); describe('getBeginOfNextYear', function () { it('returns proper beginning of the next year', function () { var date = new Date(2017, 0, 1); var beginOfNextYearDate = new Date(2018, 0, 1); var beginOfNextYear = (0, _dates.getBeginOfNextYear)(date); expect(beginOfNextYear).toEqual(beginOfNextYearDate); }); }); describe('getBeginOfMonth', function () { it('returns proper beginning of the month', function () { var date = new Date(2017, 0, 1); var beginOfMonthDate = new Date(2017, 0, 1); var beginOfMonth = (0, _dates.getBeginOfMonth)(date); expect(beginOfMonth).toEqual(beginOfMonthDate); }); }); describe('getEndOfMonth', function () { it('returns proper end of the month', function () { var date = new Date(2017, 0, 1); var endOfMonthDate = new Date(2017, 0, 31, 23, 59, 59, 999); var endOfMonth = (0, _dates.getEndOfMonth)(date); expect(endOfMonth).toEqual(endOfMonthDate); }); }); describe('getBeginOfWeek', function () { it('returns proper beginning of the week (ISO 8601)', function () { var date = new Date(2017, 0, 1); var beginOfWeekDate = new Date(2016, 11, 26); var beginOfWeek = (0, _dates.getBeginOfWeek)(date, 'ISO 8601'); expect(beginOfWeek).toEqual(beginOfWeekDate); }); it('returns proper beginning of the week (US)', function () { var date = new Date(2016, 0, 1); var beginOfWeekDate = new Date(2015, 11, 27); var beginOfWeek = (0, _dates.getBeginOfWeek)(date, 'US'); expect(beginOfWeek).toEqual(beginOfWeekDate); }); it('returns proper beginning of the week (default)', function () { var date = new Date(2017, 0, 1); var beginOfWeekDate = new Date(2016, 11, 26); var beginOfWeek = (0, _dates.getBeginOfWeek)(date); expect(beginOfWeek).toEqual(beginOfWeekDate); }); }); describe('getMonthRange', function () { it('returns proper month date range', function () { var date = new Date(2017, 0, 1); var beginOfMonthDate = new Date(2017, 0, 1); var endOfMonthDate = new Date(2017, 0, 31, 23, 59, 59, 999); var monthRange = (0, _dates.getMonthRange)(date); expect(monthRange).toHaveLength(2); expect(monthRange).toEqual([beginOfMonthDate, endOfMonthDate]); }); }); describe('getBeginPreviousOfMonth', function () { it('returns proper beginning of the previous month', function () { var date = new Date(2017, 0, 1); var beginOfPreviousMonthDate = new Date(2016, 11, 1); var beginOfPreviousMonth = (0, _dates.getBeginOfPreviousMonth)(date); expect(beginOfPreviousMonth).toEqual(beginOfPreviousMonthDate); }); }); describe('getEndOfPreviousMonth', function () { it('returns proper end of the previous month', function () { var date = new Date(2017, 0, 1); var endOfPreviousMonthDate = new Date(2016, 11, 31, 23, 59, 59, 999); var endOfPreviousMonth = (0, _dates.getEndOfPreviousMonth)(date); expect(endOfPreviousMonth).toEqual(endOfPreviousMonthDate); }); }); describe('getBeginOfNextMonth', function () { it('returns proper beginning of the next month', function () { var date = new Date(2017, 0, 1); var beginOfNextMonthDate = new Date(2017, 1, 1); var beginOfNextMonth = (0, _dates.getBeginOfNextMonth)(date); expect(beginOfNextMonth).toEqual(beginOfNextMonthDate); }); }); describe('getBeginOfDay', function () { it('returns proper beginning of the day', function () { var date = new Date(2017, 0, 1); var beginOfDayDate = new Date(2017, 0, 1); var beginOfDay = (0, _dates.getBeginOfDay)(date); expect(beginOfDay).toEqual(beginOfDayDate); }); }); describe('getEndOfDay', function () { it('returns proper end of the day', function () { var date = new Date(2017, 0, 1); var endOfDayDate = new Date(2017, 0, 1, 23, 59, 59, 999); var endOfDay = (0, _dates.getEndOfDay)(date); expect(endOfDay).toEqual(endOfDayDate); }); }); describe('getDayRange', function () { it('returns proper day date range', function () { var date = new Date(2017, 0, 1); var beginOfDayDate = new Date(2017, 0, 1); var endOfDayDate = new Date(2017, 0, 1, 23, 59, 59, 999); var dayRange = (0, _dates.getDayRange)(date); expect(dayRange).toHaveLength(2); expect(dayRange).toEqual([beginOfDayDate, endOfDayDate]); }); }); describe('getWeekNumber', function () { it('returns proper week number for a sample week 1 (ISO 8601)', function () { var year = 2018; var month = 0; var startDate = 1; for (var currentDate = startDate; currentDate < startDate + 7; currentDate += 1) { var date = new Date(year, month, currentDate); var weekNumber = (0, _dates.getWeekNumber)(date, 'ISO 8601'); expect(weekNumber).toBe(1); } }); it('returns proper week number for a sample year starting in week 1 (ISO 8601)', function () { var year = 2018; var month = 0; var startDate = 1; for (var currentWeek = 1; currentWeek <= 52; currentWeek += 1) { var weekOffset = (currentWeek - 1) * 7; var date = new Date(year, month, startDate + weekOffset); var weekNumber = (0, _dates.getWeekNumber)(date, 'ISO 8601'); expect(weekNumber).toBe(currentWeek); } }); it('returns proper week number for a sample week 52 (ISO 8601)', function () { var year = 2016; var month = 11; var startDate = 26; for (var currentDate = startDate; currentDate < startDate + 7; currentDate += 1) { var date = new Date(year, month, currentDate); var weekNumber = (0, _dates.getWeekNumber)(date, 'ISO 8601'); expect(weekNumber).toBe(52); } }); it('returns proper week number for a sample week 53 (ISO 8601)', function () { var year = 2015; var month = 11; var startDate = 28; for (var currentDate = startDate; currentDate < startDate + 7; currentDate += 1) { var date = new Date(year, month, currentDate); var weekNumber = (0, _dates.getWeekNumber)(date, 'ISO 8601'); expect(weekNumber).toBe(53); } }); it('returns proper week number for a sample week 1 (US)', function () { var year = 2015; var month = 11; var startDate = 27; for (var currentDate = startDate; currentDate < startDate + 7; currentDate += 1) { var date = new Date(year, month, currentDate); var weekNumber = (0, _dates.getWeekNumber)(date, 'US'); expect(weekNumber).toBe(1); } }); it('returns proper week number for a sample year starting in week 1 (US)', function () { var year = 2015; var month = 11; var startDate = 27; for (var currentWeek = 1; currentWeek <= 53; currentWeek += 1) { var weekOffset = (currentWeek - 1) * 7; var date = new Date(year, month, startDate + weekOffset); var weekNumber = (0, _dates.getWeekNumber)(date, 'US'); expect(weekNumber).toBe(currentWeek); } }); it('returns proper week number for a sample week 1 (US)', function () { var year = 2015; var month = 11; var startDate = 27; for (var currentDate = startDate; currentDate < startDate + 7; currentDate += 1) { var date = new Date(year, month, currentDate); var weekNumber = (0, _dates.getWeekNumber)(date, 'US'); expect(weekNumber).toBe(1); } }); it('returns proper week number for a sample week 52 (US)', function () { var year = 2017; var month = 11; var startDate = 24; for (var currentDate = startDate; currentDate < startDate + 7; currentDate += 1) { var date = new Date(year, month, currentDate); var weekNumber = (0, _dates.getWeekNumber)(date, 'US'); expect(weekNumber).toBe(52); } }); it('returns proper week number for a sample week 53 (US)', function () { var year = 2016; var month = 11; var startDate = 25; for (var currentDate = startDate; currentDate < startDate + 7; currentDate += 1) { var date = new Date(year, month, currentDate); var weekNumber = (0, _dates.getWeekNumber)(date, 'US'); expect(weekNumber).toBe(53); } }); }); describe('getRange', function () { it('returns proper century range', function () { var date = new Date(2017, 0, 1); var beginOfCenturyDate = new Date(2001, 0, 1); var endOfCenturyDate = new Date(2100, 11, 31, 23, 59, 59, 999); var centuryRange = (0, _dates.getRange)('century', date); expect(centuryRange).toHaveLength(2); expect(centuryRange).toEqual([beginOfCenturyDate, endOfCenturyDate]); }); it('returns proper decade range', function () { var date = new Date(2017, 0, 1); var beginOfDecadeDate = new Date(2011, 0, 1); var endOfDecadeDate = new Date(2020, 11, 31, 23, 59, 59, 999); var decadeRange = (0, _dates.getRange)('decade', date); expect(decadeRange).toHaveLength(2); expect(decadeRange).toEqual([beginOfDecadeDate, endOfDecadeDate]); }); it('returns proper year range', function () { var date = new Date(2017, 0, 1); var beginOfYearDate = new Date(2017, 0, 1); var endOfYearDate = new Date(2017, 11, 31, 23, 59, 59, 999); var yearRange = (0, _dates.getRange)('year', date); expect(yearRange).toHaveLength(2); expect(yearRange).toEqual([beginOfYearDate, endOfYearDate]); }); it('returns proper month range', function () { var date = new Date(2017, 0, 1); var beginOfMonthDate = new Date(2017, 0, 1); var endOfMonthDate = new Date(2017, 0, 31, 23, 59, 59, 999); var monthRange = (0, _dates.getRange)('month', date); expect(monthRange).toHaveLength(2); expect(monthRange).toEqual([beginOfMonthDate, endOfMonthDate]); }); it('returns proper day range', function () { var date = new Date(2017, 0, 1); var beginOfDayDate = new Date(2017, 0, 1); var endOfDayDate = new Date(2017, 0, 1, 23, 59, 59, 999); var dayRange = (0, _dates.getRange)('day', date); expect(dayRange).toHaveLength(2); expect(dayRange).toEqual([beginOfDayDate, endOfDayDate]); }); it('throws an error when given unrecognized range type', function () { var date = new Date(2017, 0, 1); expect(function () { return (0, _dates.getRange)('hamster', date); }).toThrow(); }); }); describe('getBegin', function () { it('returns proper beginning of the century', function () { var date = new Date(2017, 0, 1); var beginOfCenturyDate = new Date(2001, 0, 1); var beginOfCentury = (0, _dates.getBegin)('century', date); expect(beginOfCentury).toEqual(beginOfCenturyDate); }); it('returns proper beginning of the decade', function () { var date = new Date(2017, 0, 1); var beginOfDecadeDate = new Date(2011, 0, 1); var beginOfDecade = (0, _dates.getBegin)('decade', date); expect(beginOfDecade).toEqual(beginOfDecadeDate); }); it('returns proper beginning of the year', function () { var date = new Date(2017, 0, 1); var beginOfYearDate = new Date(2017, 0, 1); var beginOfYear = (0, _dates.getBegin)('year', date); expect(beginOfYear).toEqual(beginOfYearDate); }); it('returns proper beginning of the month', function () { var date = new Date(2017, 0, 1); var beginOfMonthDate = new Date(2017, 0, 1); var monthRange = (0, _dates.getBegin)('month', date); expect(monthRange).toEqual(beginOfMonthDate); }); it('returns proper beginning of the day', function () { var date = new Date(2017, 0, 1); var beginOfDayDate = new Date(2017, 0, 1); var beginOfDay = (0, _dates.getBegin)('day', date); expect(beginOfDay).toEqual(beginOfDayDate); }); it('throws an error when given unrecognized range type', function () { var date = new Date(2017, 0, 1); expect(function () { return (0, _dates.getBegin)('hamster', date); }).toThrow(); }); }); describe('getBeginPrevious', function () { it('returns proper beginning of the previous century', function () { var date = new Date(2017, 0, 1); var beginOfCenturyDate = new Date(1901, 0, 1); var beginOfCentury = (0, _dates.getBeginPrevious)('century', date); expect(beginOfCentury).toEqual(beginOfCenturyDate); }); it('returns proper beginning of the previous decade', function () { var date = new Date(2017, 0, 1); var beginOfDecadeDate = new Date(2001, 0, 1); var beginOfDecade = (0, _dates.getBeginPrevious)('decade', date); expect(beginOfDecade).toEqual(beginOfDecadeDate); }); it('returns proper beginning of the previous year', function () { var date = new Date(2017, 0, 1); var beginOfYearDate = new Date(2016, 0, 1); var beginOfYear = (0, _dates.getBeginPrevious)('year', date); expect(beginOfYear).toEqual(beginOfYearDate); }); it('returns proper beginning of the previous month', function () { var date = new Date(2017, 0, 1); var beginOfMonthDate = new Date(2016, 11, 1); var monthRange = (0, _dates.getBeginPrevious)('month', date); expect(monthRange).toEqual(beginOfMonthDate); }); it('throws an error when given unrecognized range type', function () { var date = new Date(2017, 0, 1); expect(function () { return (0, _dates.getBeginPrevious)('hamster', date); }).toThrow(); }); }); describe('getBeginNext', function () { it('returns proper beginning of the next century', function () { var date = new Date(2017, 0, 1); var beginOfCenturyDate = new Date(2101, 0, 1); var beginOfCentury = (0, _dates.getBeginNext)('century', date); expect(beginOfCentury).toEqual(beginOfCenturyDate); }); it('returns proper beginning of the next decade', function () { var date = new Date(2017, 0, 1); var beginOfDecadeDate = new Date(2021, 0, 1); var beginOfDecade = (0, _dates.getBeginNext)('decade', date); expect(beginOfDecade).toEqual(beginOfDecadeDate); }); it('returns proper beginning of the next year', function () { var date = new Date(2017, 0, 1); var beginOfYearDate = new Date(2018, 0, 1); var beginOfYear = (0, _dates.getBeginNext)('year', date); expect(beginOfYear).toEqual(beginOfYearDate); }); it('returns proper beginning of the next month', function () { var date = new Date(2017, 0, 1); var beginOfMonthDate = new Date(2017, 1, 1); var monthRange = (0, _dates.getBeginNext)('month', date); expect(monthRange).toEqual(beginOfMonthDate); }); it('throws an error when given unrecognized range type', function () { var date = new Date(2017, 0, 1); expect(function () { return (0, _dates.getBeginNext)('hamster', date); }).toThrow(); }); }); describe('getBeginPrevious2', function () { it('returns proper beginning of the decade 10 decades ago', function () { var date = new Date(2017, 0, 1); var beginOfPreviousCenturyDate = new Date(1911, 0, 1); var beginOfPreviousCentury = (0, _dates.getBeginPrevious2)('decade', date); expect(beginOfPreviousCentury).toEqual(beginOfPreviousCenturyDate); }); it('returns proper beginning of the year 10 years ago', function () { var date = new Date(2017, 0, 1); var beginOfPreviousDecadeDate = new Date(2007, 0, 1); var beginOfPreviousDecade = (0, _dates.getBeginPrevious2)('year', date); expect(beginOfPreviousDecade).toEqual(beginOfPreviousDecadeDate); }); it('returns proper beginning of the month 1 year ago', function () { var date = new Date(2017, 0, 1); var beginOfPreviousYearDate = new Date(2016, 0, 1); var beginOfPreviousYear = (0, _dates.getBeginPrevious2)('month', date); expect(beginOfPreviousYear).toEqual(beginOfPreviousYearDate); }); it('throws an error when given unrecognized range type', function () { var date = new Date(2017, 0, 1); expect(function () { return (0, _dates.getBeginPrevious2)('hamster', date); }).toThrow(); }); }); describe('getBeginNext2', function () { it('returns proper beginning of the decade 10 decades ahead', function () { var date = new Date(2017, 0, 1); var beginOfNextCenturyDate = new Date(2111, 0, 1); var beginOfNextCentury = (0, _dates.getBeginNext2)('decade', date); expect(beginOfNextCentury).toEqual(beginOfNextCenturyDate); }); it('returns proper beginning of the year 10 years ahead', function () { var date = new Date(2017, 0, 1); var beginOfNextDecadeDate = new Date(2027, 0, 1); var beginOfNextDecade = (0, _dates.getBeginNext2)('year', date); expect(beginOfNextDecade).toEqual(beginOfNextDecadeDate); }); it('returns proper beginning of the month 1 year ahead', function () { var date = new Date(2017, 0, 1); var beginOfNextYearDate = new Date(2018, 0, 1); var beginOfNextYear = (0, _dates.getBeginNext2)('month', date); expect(beginOfNextYear).toEqual(beginOfNextYearDate); }); it('throws an error when given unrecognized range type', function () { var date = new Date(2017, 0, 1); expect(function () { return (0, _dates.getBeginNext2)('hamster', date); }).toThrow(); }); }); describe('getEnd', function () { it('returns proper end of the century', function () { var date = new Date(2017, 0, 1); var endOfCenturyDate = new Date(2100, 11, 31, 23, 59, 59, 999); var endOfCentury = (0, _dates.getEnd)('century', date); expect(endOfCentury).toEqual(endOfCenturyDate); }); it('returns proper end of the decade', function () { var date = new Date(2017, 0, 1); var endOfDecadeDate = new Date(2020, 11, 31, 23, 59, 59, 999); var endOfDecade = (0, _dates.getEnd)('decade', date); expect(endOfDecade).toEqual(endOfDecadeDate); }); it('returns proper end of the year', function () { var date = new Date(2017, 0, 1); var endOfYearDate = new Date(2017, 11, 31, 23, 59, 59, 999); var endOfYear = (0, _dates.getEnd)('year', date); expect(endOfYear).toEqual(endOfYearDate); }); it('returns proper end of the month', function () { var date = new Date(2017, 0, 1); var endOfMonthDate = new Date(2017, 0, 31, 23, 59, 59, 999); var monthRange = (0, _dates.getEnd)('month', date); expect(monthRange).toEqual(endOfMonthDate); }); it('returns proper end of the day', function () { var date = new Date(2017, 0, 1); var endOfDayDate = new Date(2017, 0, 1, 23, 59, 59, 999); var endOfDay = (0, _dates.getEnd)('day', date); expect(endOfDay).toEqual(endOfDayDate); }); it('throws an error when given unrecognized range type', function () { var date = new Date(2017, 0, 1); expect(function () { return (0, _dates.getEnd)('hamster', date); }).toThrow(); }); }); describe('getEndPrevious', function () { it('returns proper end of the previous century', function () { var date = new Date(2017, 0, 1); var endOfCenturyDate = new Date(2000, 11, 31, 23, 59, 59, 999); var endOfCentury = (0, _dates.getEndPrevious)('century', date); expect(endOfCentury).toEqual(endOfCenturyDate); }); it('returns proper end of the previous decade', function () { var date = new Date(2017, 0, 1); var endOfDecadeDate = new Date(2010, 11, 31, 23, 59, 59, 999); var endOfDecade = (0, _dates.getEndPrevious)('decade', date); expect(endOfDecade).toEqual(endOfDecadeDate); }); it('returns proper end of the previous year', function () { var date = new Date(2017, 0, 1); var endOfYearDate = new Date(2016, 11, 31, 23, 59, 59, 999); var endOfYear = (0, _dates.getEndPrevious)('year', date); expect(endOfYear).toEqual(endOfYearDate); }); it('returns proper end of the previous month', function () { var date = new Date(2017, 0, 1); var endOfMonthDate = new Date(2016, 11, 31, 23, 59, 59, 999); var monthRange = (0, _dates.getEndPrevious)('month', date); expect(monthRange).toEqual(endOfMonthDate); }); it('throws an error when given unrecognized range type', function () { var date = new Date(2017, 0, 1); expect(function () { return (0, _dates.getEndPrevious)('hamster', date); }).toThrow(); }); }); describe('getEndPrevious2', function () { it('returns proper end of the decade 10 decades ago', function () { var date = new Date(2017, 0, 1); var endOfPreviousCenturyDate = new Date(1920, 11, 31, 23, 59, 59, 999); var endOfPreviousCentury = (0, _dates.getEndPrevious2)('decade', date); expect(endOfPreviousCentury).toEqual(endOfPreviousCenturyDate); }); it('returns proper end of the year 10 years ago', function () { var date = new Date(2017, 0, 1); var endOfPreviousDecadeDate = new Date(2007, 11, 31, 23, 59, 59, 999); var endOfPreviousDecade = (0, _dates.getEndPrevious2)('year', date); expect(endOfPreviousDecade).toEqual(endOfPreviousDecadeDate); }); it('returns proper end of the month 1 year ago', function () { var date = new Date(2017, 0, 1); var endOfPreviousYearDate = new Date(2016, 0, 31, 23, 59, 59, 999); var endOfPreviousYear = (0, _dates.getEndPrevious2)('month', date); expect(endOfPreviousYear).toEqual(endOfPreviousYearDate); }); it('throws an error when given unrecognized range type', function () { var date = new Date(2017, 0, 1); expect(function () { return (0, _dates.getEndPrevious2)('hamster', date); }).toThrow(); }); }); describe('getValueRange', function () { it('returns an array of dates given two ordered dates', function () { var date1 = new Date(2018, 0, 1); var date2 = new Date(2018, 6, 1); var range = (0, _dates.getValueRange)('day', date1, date2); expect(range).toEqual([(0, _dates.getBeginOfDay)(date1), (0, _dates.getEndOfDay)(date2)]); }); it('returns an array of dates given two unordered dates', function () { var date1 = new Date(2018, 6, 1); var date2 = new Date(2018, 0, 1); var range = (0, _dates.getValueRange)('day', date1, date2); expect(range).toEqual([(0, _dates.getBeginOfDay)(date2), (0, _dates.getEndOfDay)(date1)]); }); }); describe('getDaysInMonth', function () { it('returns proper number of days in a month', function () { var date = new Date(2017, 0, 1); var daysInMonth = (0, _dates.getDaysInMonth)(date); expect(daysInMonth).toBe(31); }); }); describe('getCenturyLabel', function () { it('returns proper label for the century a given date is in', function () { var date = new Date(2017, 0, 1); var centuryLabel = (0, _dates.getCenturyLabel)(date); expect(centuryLabel).toBe('2001 – 2100'); }); }); describe('getDecadeLabel', function () { it('returns proper label for the decade a given date is in', function () { var date = new Date(2017, 0, 1); var decadeLabel = (0, _dates.getDecadeLabel)(date); expect(decadeLabel).toBe('2011 – 2020'); }); }); describe('isWeekend', function () { it('returns proper flag', function () { var date1 = new Date(2016, 11, 30); var date2 = new Date(2016, 11, 31); var date3 = new Date(2017, 0, 1); var date4 = new Date(2017, 0, 2); var isWeekend1 = (0, _dates.isWeekend)(date1); var isWeekend2 = (0, _dates.isWeekend)(date2); var isWeekend3 = (0, _dates.isWeekend)(date3); var isWeekend4 = (0, _dates.isWeekend)(date4); expect(isWeekend1).toBe(false); expect(isWeekend2).toBe(true); expect(isWeekend3).toBe(true); expect(isWeekend4).toBe(false); }); }); describe('getISOLocalMonth', function () { it('returns proper ISO month', function () { var date = new Date(Date.UTC(2017, 0, 1)); var ISOMonth = (0, _dates.getISOLocalMonth)(date); expect(ISOMonth).toBe('2017-01'); }); it('returns nothing when given nothing', function () { expect((0, _dates.getISOLocalMonth)()).toBeUndefined(); }); it('throws an error when given nonsense data', function () { var text = 'wololo'; var fn = function fn() {}; expect(function () { return (0, _dates.getISOLocalMonth)(text); }).toThrow(); expect(function () { return (0, _dates.getISOLocalMonth)(fn); }).toThrow(); }); }); describe('getISOLocalDate', function () { it('returns proper ISO date', function () { var date = new Date(Date.UTC(2017, 0, 1)); var ISODate = (0, _dates.getISOLocalDate)(date); expect(ISODate).toBe('2017-01-01'); }); it('returns nothing when given nothing', function () { expect((0, _dates.getISOLocalDate)()).toBeUndefined(); }); it('throws an error when given nonsense data', function () { var text = 'wololo'; var fn = function fn() {}; expect(function () { return (0, _dates.getISOLocalDate)(text); }).toThrow(); expect(function () { return (0, _dates.getISOLocalDate)(fn); }).toThrow(); }); });