83 lines
2.0 KiB
JavaScript
83 lines
2.0 KiB
JavaScript
'use strict';
|
|
|
|
var expect = require('expect.js');
|
|
var Task = require('../../src/task');
|
|
|
|
describe('Task', () => {
|
|
describe('week day', () => {
|
|
it('should run on week day', () => {
|
|
let executed = 0;
|
|
var task = new Task('* * * * *', () => {
|
|
executed += 1;
|
|
});
|
|
var date = new Date(2016, 0, 1);
|
|
date.setDate(4);
|
|
task.update(date);
|
|
date.setDate(5);
|
|
task.update(date);
|
|
date.setDate(6);
|
|
task.update(date);
|
|
expect(3).to.equal(executed);
|
|
});
|
|
|
|
it('should run only on week day 3', () => {
|
|
let executed = 0;
|
|
var task = new Task('* * * * 3', () => {
|
|
executed += 1;
|
|
});
|
|
var date = new Date(2016, 0, 1);
|
|
date.setDate(5);
|
|
task.update(date);
|
|
date.setDate(6);
|
|
task.update(date);
|
|
date.setDate(9);
|
|
task.update(date);
|
|
expect(1).to.equal(executed);
|
|
});
|
|
|
|
it('should run only on week days 2, 3 and 5 ', () => {
|
|
let executed = 0;
|
|
var task = new Task('* * * * 2,3,5', () => {
|
|
executed += 1;
|
|
});
|
|
var date = new Date(2016, 0, 1);
|
|
date.setDate(4);
|
|
task.update(date);
|
|
date.setDate(5);
|
|
task.update(date);
|
|
date.setDate(6);
|
|
task.update(date);
|
|
date.setDate(7);
|
|
task.update(date);
|
|
date.setDate(8);
|
|
task.update(date);
|
|
expect(3).to.equal(executed);
|
|
});
|
|
|
|
it('should run in even week days', () => {
|
|
let executed = 0;
|
|
var task = new Task('* * * * */2', () => {
|
|
executed += 1;
|
|
});
|
|
var date = new Date(2016, 0, 1);
|
|
date.setDate(4);
|
|
task.update(date);
|
|
date.setDate(5);
|
|
task.update(date);
|
|
date.setDate(7);
|
|
task.update(date);
|
|
expect(2).to.equal(executed);
|
|
});
|
|
|
|
it('should run on monday', () => {
|
|
let executed = 0;
|
|
var task = new Task('* * * * Monday', () => {
|
|
executed += 1;
|
|
});
|
|
task.update(new Date(2016, 0, 4));
|
|
expect(1).to.equal(executed);
|
|
});
|
|
});
|
|
});
|
|
|