emarsys-test
Version:
Emarsys test application
45 lines (33 loc) • 1.38 kB
JavaScript
var chai = require('chai');
global.should = chai.should();
var moment = require('moment-business-time');
var cal = require('../cal');
describe('test',function() {
var f = 'LLL';
describe('CalculateDueDate', function() {
var day = moment('2017-04-17 15:21:49'); //Tuesday - workday 9:00 AM - 5:00 PM
it('0h: return the same time', function() {
cal.CalculateDueDate(day.format(f),0).should.equal(day.format(f));
});
it('1h: return 1 hour in working hours', function() {
var hourAfter = day.clone().add(1,'h');
cal.CalculateDueDate(day,1).should.equal(hourAfter.format(f));
});
it('2h: return next workday 09:21:49', function() {
var hoursAfter = day.clone().add(1,'d').set('h',9);
cal.CalculateDueDate(day,2).should.equal(hoursAfter.format(f));
});
it('8h: return the same time tomorrow', function() {
var tomorrow = day.clone().add(1,'d');
cal.CalculateDueDate(day,8).should.equal(tomorrow.format(f));
});
it('40h: return the same day next week', function() {
var weekAfter = day.clone().add(1,'w');
cal.CalculateDueDate(day,40).should.equal(weekAfter.format(f));
});
it('-40h: return the same day last week', function() {
var weekBefore = day.clone().subtract(1,'w');
cal.CalculateDueDate(day,-40).should.equal(weekBefore.format(f));
});
})
});