mirror of https://github.com/IoTcat/cron-git.git
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
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(); |
|
} |
|
};
|
|
|