expresser
Version:
A ready to use Node.js web app wrapper, built on top of Express.
71 lines (55 loc) • 2.08 kB
JavaScript
// TEST: CRON
require("coffee-script/register");
var chai = require("chai");
chai.should();
describe("Cron Tests", function() {
var env = process.env;
if (!env.NODE_ENV || env.NODE_ENV == "") env.NODE_ENV = "test";
var settings = require("../lib/settings.coffee");
settings.loadFromJson("../plugins/cron/settings.default.json");
settings.loadFromJson("settings.test.json");
var utils = null;
var cron = null;
// TESTS STARTS HERE!!!
// ----------------------------------------------------------------------------------
before(function() {
utils = require("../lib/utils.coffee");
cron = require("../plugins/cron/index.coffee");
cron.expresser = require("../index.coffee");
cron.expresser.events = require("../lib/events.coffee");
cron.expresser.logger = require("../lib/logger.coffee");
});
it("Has settings defined", function() {
settings.should.have.property("cron");
});
it("Inits", function() {
cron.init();
});
it("Add and run a cron job, passing itself to the callback", function(done) {
var schedule = 1;
var callback = function(jobRef) {
if (jobRef.schedule == schedule)
{
done();
}
else
{
done("The job was not passed to the callback.")
}
};
var job = {id: "testjob", callback: callback, schedule: schedule, once: true};
cron.add(job);
});
it("Prevents duplicate jobs when 'allowReplacing' setting is false", function(done) {
var callback = function() { return true; };
var job1 = {id: "uniqueJob", callback: callback, schedule: 1000, once: true};
var job2 = {id: "uniqueJob", callback: callback, schedule: 2000, once: false};
settings.cron.allowReplacing = false;
cron.add(job1);
if (cron.add(job2).error) {
done();
} else {
done("Duplicate job was added, and it shouldn't be.")
}
});
});