/* global describe expect it */ import moment from 'moment-timezone'; import { dayCount } from './date-utils'; const PST = 'America/Los_Angeles'; describe('date utils', () => { describe('dayCount', () => { it('should return 1 day given epochs of the same day', () => { expect( dayCount([ moment.utc('8/3/2015 3:00', 'M/D/YYYY H:mm').valueOf(), moment.utc('8/3/2015 2:00', 'M/D/YYYY H:mm').valueOf() ]) ).toEqual(1); }); it('should return 1 day given same epochs', () => { expect( dayCount([ moment.utc('8/3/2015 2:00', 'M/D/YYYY H:mm').valueOf(), moment.utc('8/3/2015 2:00', 'M/D/YYYY H:mm').valueOf() ]) ).toEqual(1); }); it('should return 2 days when there is a 24 hours difference', () => { expect( dayCount([ moment.utc('8/4/2015 2:00', 'M/D/YYYY H:mm').valueOf(), moment.utc('8/3/2015 2:00', 'M/D/YYYY H:mm').valueOf() ]) ).toEqual(2); }); it( 'should return 2 days when the diff is less than 24h but ' + 'different in UTC', () => { expect( dayCount([ moment.utc('8/4/2015 1:00', 'M/D/YYYY H:mm').valueOf(), moment.utc('8/3/2015 23:00', 'M/D/YYYY H:mm').valueOf() ]) ).toEqual(2); } ); it( 'should return 1 day when the diff is less than 24h ' + 'and days are different in UTC, but given PST', () => { expect( dayCount( [ moment.utc('8/4/2015 1:00', 'M/D/YYYY H:mm').valueOf(), moment.utc('8/3/2015 23:00', 'M/D/YYYY H:mm').valueOf() ], PST ) ).toEqual(1); } ); it('should return correct count when there is very big period', () => { expect( dayCount([ moment.utc('10/27/2015 1:00', 'M/D/YYYY H:mm').valueOf(), moment.utc('5/12/1982 1:00', 'M/D/YYYY H:mm').valueOf() ]) ).toEqual(12222); }); it( 'should return 2 days when there is a 24 hours difference ' + 'between dates given `undefined` timezone', () => { expect( dayCount([ moment.utc('8/4/2015 2:00', 'M/D/YYYY H:mm').valueOf(), moment.utc('8/3/2015 2:00', 'M/D/YYYY H:mm').valueOf() ]) ).toEqual(2); } ); }); });