import './index.js'; describe('Travel Component vnTravel', () => { let controller; beforeEach(ngModule('travel')); beforeEach(inject($componentController => { let $element = angular.element(`
`); controller = $componentController('vnTravel', {$element}); })); describe('fetchParams()', () => { it('should return a range of dates with passed scope days', () => { /** * Calculates the difference in days between two dates, it also * accounts for cases where the two dates in question span a * daylight saving time (DST) change. * * @param {Date} a The start date * @param {Date} b The end date * @return {Number} The difference in days */ function diffInDays(a, b) { const utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate()); const utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate()); const msInDay = 86400 * 1000; return Math.floor((utc2 - utc1) / msInDay); } let params = controller.fetchParams({scopeDays: 2}); const diff = diffInDays( params.shippedFrom, new Date(params.shippedTo.getTime() + 1) ); expect(diff).toEqual(3); }); }); });