You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

327 lines
6.6 KiB

'use strict';
var sinon = require('sinon');
var main = require('../package.json').main;
var schedule = require('../' + main);
var clock;
module.exports = {
setUp: function (cb) {
clock = sinon.useFakeTimers();
cb();
},
'RecurrenceRule': {
'no endTime , startTime less than now': function (test) {
test.expect(3);
var job = new schedule.Job(function () {
test.ok(true);
});
var rule = new schedule.RecurrenceRule();
rule.second = null; // every second
job.schedule({
start: new Date(Date.now() - 2000),
rule: rule
});
setTimeout(function () {
job.cancel();
test.done();
}, 3250);
clock.tick(3250);
},
'no endTime , startTime greater than now': function (test) {
test.expect(1);
var job = new schedule.Job(function () {
test.ok(true);
});
var rule = new schedule.RecurrenceRule();
rule.second = null; // every second
job.schedule({
start: new Date(Date.now() + 2000),
rule: rule
});
setTimeout(function () {
job.cancel();
test.done();
}, 3250);
clock.tick(3250);
},
'no startTime , endTime less than now': function (test) {
test.expect(0);
var job = new schedule.Job(function () {
test.ok(true);
});
var rule = new schedule.RecurrenceRule();
rule.second = null; // every second
job.schedule({
end: new Date(Date.now() - 2000),
rule: rule
});
setTimeout(function () {
job.cancel();
test.done();
}, 3250);
clock.tick(3250);
},
'no startTime , endTime greater than now': function (test) {
test.expect(2);
var job = new schedule.Job(function () {
test.ok(true);
});
var rule = new schedule.RecurrenceRule();
rule.second = null; // every second
job.schedule({
end: new Date(Date.now() + 2000),
rule: rule
});
setTimeout(function () {
job.cancel();
test.done();
}, 3250);
clock.tick(3250);
},
'has startTime and endTime': function (test) {
test.expect(1);
var job = new schedule.Job(function () {
test.ok(true);
});
var rule = new schedule.RecurrenceRule();
rule.second = null; // every second
job.schedule({
start: new Date(Date.now() + 1000),
end: new Date(Date.now() + 2000),
rule: rule
});
setTimeout(function () {
job.cancel();
test.done();
}, 3250);
clock.tick(3250);
}
},
'Object Literal': {
'no endTime , startTime less than now': function (test) {
test.expect(3);
var job = new schedule.Job(function () {
test.ok(true);
});
job.schedule({
start: new Date(Date.now() - 2000),
rule: { second: null }
});
setTimeout(function () {
job.cancel();
test.done();
}, 3250);
clock.tick(3250);
},
'no endTime , startTime greater than now': function (test) {
test.expect(1);
var job = new schedule.Job(function () {
test.ok(true);
});
job.schedule({
start: new Date(Date.now() + 2000),
rule: { second: null }
});
setTimeout(function () {
job.cancel();
test.done();
}, 3250);
clock.tick(3250);
},
'no startTime , endTime less than now': function (test) {
test.expect(0);
var job = new schedule.Job(function () {
test.ok(true);
});
job.schedule({
end: new Date(Date.now() - 2000),
rule: { second: null }
});
setTimeout(function () {
job.cancel();
test.done();
}, 3250);
clock.tick(3250);
},
'no startTime , endTime greater than now': function (test) {
test.expect(2);
var job = new schedule.Job(function () {
test.ok(true);
});
job.schedule({
end: new Date(Date.now() + 2000),
rule: { second: null }
});
setTimeout(function () {
job.cancel();
test.done();
}, 3250);
clock.tick(3250);
},
'has startTime and endTime': function (test) {
test.expect(1);
var job = new schedule.Job(function () {
test.ok(true);
});
job.schedule({
start: new Date(Date.now() + 1000),
end: new Date(Date.now() + 2000),
rule: { second: null }
});
setTimeout(function () {
job.cancel();
test.done();
}, 3250);
clock.tick(3250);
}
},
'cron-style': {
'no endTime , startTime less than now': function (test) {
test.expect(3);
var job = new schedule.Job(function () {
test.ok(true);
});
job.schedule({
start: new Date(Date.now() - 2000),
rule: '*/1 * * * * *'
});
setTimeout(function () {
job.cancel();
test.done();
}, 3250);
clock.tick(3250);
},
'no endTime , startTime greater than now': function (test) {
test.expect(1);
var job = new schedule.Job(function () {
test.ok(true);
});
job.schedule({
start: new Date(Date.now() + 2000),
rule: '*/1 * * * * *'
});
setTimeout(function () {
job.cancel();
test.done();
}, 3250);
clock.tick(3250);
},
'no startTime , endTime less than now': function (test) {
test.expect(0);
var job = new schedule.Job(function () {
test.ok(true);
});
job.schedule({
end: new Date(Date.now() - 2000),
rule: '*/1 * * * * *'
});
setTimeout(function () {
job.cancel();
test.done();
}, 3250);
clock.tick(3250);
},
'no startTime , endTime greater than now': function (test) {
test.expect(2);
var job = new schedule.Job(function () {
test.ok(true);
});
job.schedule({
end: new Date(Date.now() + 2000),
rule: '*/1 * * * * *'
});
setTimeout(function () {
job.cancel();
test.done();
}, 3250);
clock.tick(3250);
},
'has startTime and endTime': function (test) {
test.expect(1);
var job = new schedule.Job(function () {
test.ok(true);
});
job.schedule({
start: new Date(Date.now() + 1000),
end: new Date(Date.now() + 2000),
rule: '*/1 * * * * *'
});
setTimeout(function () {
job.cancel();
test.done();
}, 3250);
clock.tick(3250);
}
},
tearDown: function (cb) {
clock.restore();
cb();
}
};