UNPKG

expresser

Version:

A ready to use Node.js web app wrapper, built on top of Express.

72 lines (56 loc) 2.12 kB
// 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"); if (!settings.testKeysLoaded) { settings.loadFromJson("settings.test.keys.json"); settings.testKeysLoaded = true; } var utils = null; var cron = null; // TESTS STARTS HERE!!! // ---------------------------------------------------------------------------------- before(function() { utils = require("../lib/utils.coffee"); cron = require("../lib/cron.coffee"); }); it("Is single instance", function() { cron.singleInstance = true; var cron2 = require("../lib/cron.coffee"); cron.singleInstance.should.equal(cron2.singleInstance); }); it("Has settings defined", function() { settings.should.have.property("cron"); }); 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.") } }); });