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.
134 lines
2.7 KiB
134 lines
2.7 KiB
|
|
'use strict'; |
|
|
|
var sinon = require('sinon'); |
|
var main = require('../package.json').main; |
|
var schedule = require('../' + main); |
|
|
|
var clock; |
|
|
|
module.exports = { |
|
".scheduleJob(cron_expr, fn)": { |
|
setUp: function(cb) { |
|
clock = sinon.useFakeTimers(); |
|
cb(); |
|
}, |
|
"Runs job every second": function(test) { |
|
test.expect(3); |
|
|
|
var timeout = 3 * 1000 + 150; |
|
|
|
var job = schedule.scheduleJob('* * * * * *', function() { |
|
test.ok(true); |
|
}); |
|
|
|
setTimeout(function() { |
|
job.cancel(); |
|
test.done(); |
|
}, timeout); |
|
|
|
clock.tick(timeout); |
|
}, |
|
"Runs job every minute": function(test) { |
|
test.expect(3); |
|
|
|
var timeout = 3 * 60 * 1000 + 150; |
|
|
|
var job = schedule.scheduleJob('0 * * * * *', function() { |
|
test.ok(true); |
|
}); |
|
|
|
setTimeout(function() { |
|
job.cancel(); |
|
test.done(); |
|
}, timeout); |
|
|
|
clock.tick(timeout); |
|
}, |
|
"Runs job every hour": function(test) { |
|
test.expect(3); |
|
|
|
var timeout = 3 * 60 * 60 * 1000 + 150; |
|
|
|
var job = schedule.scheduleJob('0 0 * * * *', function() { |
|
test.ok(true); |
|
}); |
|
|
|
setTimeout(function() { |
|
job.cancel(); |
|
test.done(); |
|
}, timeout); |
|
|
|
clock.tick(timeout); |
|
}, |
|
"Runs job every day": function(test) { |
|
test.expect(3); |
|
|
|
var timeout = 3 * 24 * 60 * 60 * 1000 + 150; |
|
|
|
var job = schedule.scheduleJob('0 0 0 * * *', function() { |
|
test.ok(true); |
|
}); |
|
|
|
setTimeout(function() { |
|
job.cancel(); |
|
test.done(); |
|
}, timeout); |
|
|
|
clock.tick(timeout); |
|
}, |
|
"Runs job every week": function(test) { |
|
test.expect(3); |
|
|
|
var timeout = 3 * 7 * 24 * 60 * 60 * 1000 + 150; |
|
|
|
var job = schedule.scheduleJob('0 0 0 * * 1', function() { |
|
test.ok(true); |
|
}); |
|
|
|
setTimeout(function() { |
|
job.cancel(); |
|
test.done(); |
|
}, timeout); |
|
|
|
clock.tick(timeout); |
|
}, |
|
"Runs job every month": function(test) { |
|
test.expect(48); |
|
|
|
var timeout = 4 * 365.25 * 24 * 60 * 60 * 1000 + 150; |
|
|
|
var job = schedule.scheduleJob('0 0 0 1 * *', function() { |
|
test.ok(true); |
|
}); |
|
|
|
setTimeout(function() { |
|
job.cancel(); |
|
test.done(); |
|
}, timeout); |
|
|
|
clock.tick(timeout); |
|
|
|
}, |
|
"Runs job every year": function(test) { |
|
test.expect(4); |
|
|
|
var timeout = 4 * 365.25 * 24 * 60 * 60 * 1000 + 150; |
|
|
|
var job = schedule.scheduleJob('0 0 0 1 1 *', function() { |
|
test.ok(true); |
|
}); |
|
|
|
setTimeout(function() { |
|
job.cancel(); |
|
test.done(); |
|
}, timeout); |
|
|
|
clock.tick(timeout); |
|
}, |
|
tearDown: function(cb) { |
|
clock.restore(); |
|
cb(); |
|
} |
|
} |
|
};
|
|
|