cluster-service
Version:
Turns your single process code into a fault-resilient multi-process service with built-in REST & CLI support
108 lines (100 loc) • 2.78 kB
JavaScript
var cservice = require("../cluster-service");
var assert = require("assert");
cservice.log = function() {};
if(cservice.isWorker){
it("WORKER", function(done) {});
} else {
describe('[Restart]', function() {
it('Start workers', function(done) {
assert.equal(
cservice.workers.length,
0,
"0 workers expected, but " + cservice.workers.length + " found"
);
cservice.start(
{
workers: {
basic2: {
worker: "./test/workers/basic2",
count: 2,
ready: false
}
},
accessKey: "123",
cli: false
},
function() {
assert.equal(
cservice.workers.length,
2,
"2 workers expected, but " + cservice.workers.length + " found"
);
done();
}
);
});
it('Bad input #1', function(done) {
cservice.trigger("restart", function(err) {
assert.equal(err, "Invalid request. Try help restart");
done();
}, "GG"
);
});
it('Bad input #2', function(done) {
cservice.trigger("restart", function(err) {
assert.equal(err, "Invalid request. Try help restart");
done();
}, 0
);
});
it('Restart without timeout', function(done) {
cservice.trigger("restart", function() {
assert.equal(
cservice.workers.length,
2,
"2 workers expected, but " + cservice.workers.length + " found"
);
done();
}, "all", {timeout: 30000} // with timeout
);
});
it('Restart with timeout', function(done) {
cservice.trigger("restart", function(err) {
assert.equal(err, "timed out");
setTimeout(function() {
assert.equal(
cservice.workers.length,
2,
"2 workers expected, but " + cservice.workers.length + " found"
);
done();
}, 1000);
}, "all", {timeout: 1} // with timeout
);
});
it('Stop workers', function(done) {
cservice.stop(30000, function(err, msg) {
assert.ok(!err, 'Error: ' + err);
assert.equal(
cservice.workers.length,
0,
"0 workers expected, but "
+ cservice.workers.length
+ " found. Message: " + msg
);
done();
});
});
it('Restart with no workers', function(done) {
cservice.trigger("restart", function(err) {
assert.equal(err, "No workers to restart");
assert.equal(
cservice.workers.length,
0,
"0 workers expected, but " + cservice.workers.length + " found"
);
done();
}, "all");
});
});
}