taskbuffer/test/test.js

50 lines
6.0 KiB
JavaScript

"use strict";
/// <reference path="../ts/typings/main.d.ts" />
var taskbuffer = require("../dist/index");
var should = require("should");
var plugins = {
q: require("q")
};
//setup some testData to work with
var testTask;
var testTaskFunction = function () {
var done = plugins.q.defer();
console.log("main function executed!");
done.resolve();
return done.promise;
};
var testPreTask = new taskbuffer.Task({
taskFunction: function () {
console.log("preTask executed");
},
preTask: testTask
});
describe("taskbuffer", function () {
describe(".Task", function () {
it("new Task() should return a new task", function () {
testTask = new taskbuffer.Task({ taskFunction: testTaskFunction, preTask: testPreTask });
});
it("testTask should be and instance of Task", function () {
testTask.should.be.instanceof(taskbuffer.Task);
});
it("testTask.idle is true", function () {
if (!testTask.idle) {
throw new Error("testTask.idle is not true");
}
});
it("testTask.running is type boolean and initially false", function () {
testTask.running.should.be.type("boolean");
testTask.running.should.be.false();
});
it("testTask.trigger() should return Promise", function () {
testTask.trigger().should.be.Promise();
});
it("testTask.trigger() returned Promise should be fullfilled", function (done) {
testTask.trigger()
.then(done);
});
});
});
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGdEQUFnRDtBQUNoRCxJQUFPLFVBQVUsV0FBVyxlQUFlLENBQUMsQ0FBQztBQUM3QyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDL0IsSUFBSSxPQUFPLEdBQUc7SUFDVixDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztDQUNsQixDQUFBO0FBRUQsa0NBQWtDO0FBQ2xDLElBQUksUUFBd0IsQ0FBQztBQUM3QixJQUFJLGdCQUFnQixHQUFHO0lBQ25CLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO0lBQ3RDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQTtBQUNELElBQUksV0FBVyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQztJQUNsQyxZQUFZLEVBQUM7UUFDVCxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELE9BQU8sRUFBQyxRQUFRO0NBQ25CLENBQUMsQ0FBQztBQUVILFFBQVEsQ0FBQyxZQUFZLEVBQUM7SUFDbEIsUUFBUSxDQUFDLE9BQU8sRUFBQztRQUNiLEVBQUUsQ0FBQyxxQ0FBcUMsRUFBQztZQUNyQyxRQUFRLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUMsWUFBWSxFQUFDLGdCQUFnQixFQUFDLE9BQU8sRUFBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDO1FBQ3hGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsRUFBRSxDQUFDLHlDQUF5QyxFQUFDO1lBQ3pDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsdUJBQXVCLEVBQUM7WUFDdkIsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQztnQkFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQ2pELENBQUM7UUFFTCxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyxzREFBc0QsRUFBQztZQUN0RCxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQywwQ0FBMEMsRUFBQztZQUMxQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQywwREFBMEQsRUFBQyxVQUFTLElBQUk7WUFDdkUsUUFBUSxDQUFDLE9BQU8sRUFBRTtpQkFDYixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6InRlc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vdHMvdHlwaW5ncy9tYWluLmQudHNcIiAvPlxyXG5pbXBvcnQgdGFza2J1ZmZlciA9IHJlcXVpcmUoXCIuLi9kaXN0L2luZGV4XCIpO1xyXG5sZXQgc2hvdWxkID0gcmVxdWlyZShcInNob3VsZFwiKTtcclxubGV0IHBsdWdpbnMgPSB7XHJcbiAgICBxOiByZXF1aXJlKFwicVwiKVxyXG59XHJcblxyXG4vL3NldHVwIHNvbWUgdGVzdERhdGEgdG8gd29yayB3aXRoXHJcbmxldCB0ZXN0VGFzazp0YXNrYnVmZmVyLlRhc2s7XHJcbmxldCB0ZXN0VGFza0Z1bmN0aW9uID0gZnVuY3Rpb24oKXtcclxuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XHJcbiAgICBjb25zb2xlLmxvZyhcIm1haW4gZnVuY3Rpb24gZXhlY3V0ZWQhXCIpXHJcbiAgICBkb25lLnJlc29sdmUoKTtcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn1cclxubGV0IHRlc3RQcmVUYXNrID0gbmV3IHRhc2tidWZmZXIuVGFzayh7XHJcbiAgICB0YXNrRnVuY3Rpb246ZnVuY3Rpb24oKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInByZVRhc2sgZXhlY3V0ZWRcIik7XHJcbiAgICB9LFxyXG4gICAgcHJlVGFzazp0ZXN0VGFza1xyXG59KTtcclxuXHJcbmRlc2NyaWJlKFwidGFza2J1ZmZlclwiLGZ1bmN0aW9uKCl7XHJcbiAgICBkZXNjcmliZShcIi5UYXNrXCIsZnVuY3Rpb24oKXtcclxuICAgICAgICBpdChcIm5ldyBUYXNrKCkgc2hvdWxkIHJldHVybiBhIG5ldyB0YXNrXCIsZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgdGVzdFRhc2sgPSBuZXcgdGFza2J1ZmZlci5UYXNrKHt0YXNrRnVuY3Rpb246dGVzdFRhc2tGdW5jdGlvbixwcmVUYXNrOnRlc3RQcmVUYXNrfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaXQoXCJ0ZXN0VGFzayBzaG91bGQgYmUgYW5kIGluc3RhbmNlIG9mIFRhc2tcIixmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICB0ZXN0VGFzay5zaG91bGQuYmUuaW5zdGFuY2VvZih0YXNrYnVmZmVyLlRhc2spO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGl0KFwidGVzdFRhc2suaWRsZSBpcyB0cnVlXCIsZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgaWYgKCF0ZXN0VGFzay5pZGxlKXtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInRlc3RUYXNrLmlkbGUgaXMgbm90IHRydWVcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaXQoXCJ0ZXN0VGFzay5ydW5uaW5nIGlzIHR5cGUgYm9vbGVhbiBhbmQgaW5pdGlhbGx5IGZhbHNlXCIsZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgdGVzdFRhc2sucnVubmluZy5zaG91bGQuYmUudHlwZShcImJvb2xlYW5cIik7XHJcbiAgICAgICAgICAgIHRlc3RUYXNrLnJ1bm5pbmcuc2hvdWxkLmJlLmZhbHNlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaXQoXCJ0ZXN0VGFzay50cmlnZ2VyKCkgc2hvdWxkIHJldHVybiBQcm9taXNlXCIsZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgdGVzdFRhc2sudHJpZ2dlcigpLnNob3VsZC5iZS5Qcm9taXNlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaXQoXCJ0ZXN0VGFzay50cmlnZ2VyKCkgcmV0dXJuZWQgUHJvbWlzZSBzaG91bGQgYmUgZnVsbGZpbGxlZFwiLGZ1bmN0aW9uKGRvbmUpe1xyXG4gICAgICAgICAgICB0ZXN0VGFzay50cmlnZ2VyKClcclxuICAgICAgICAgICAgICAgIC50aGVuKGRvbmUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn0pOyJdfQ==