beforeEach(function () { sandbox = sinon.sandbox.create(); sandbox.stub(zkClient, "connect", function () { this.emit("connected"); }); sandbox.stub(zkClient, "getChildren", function (path, cb) { cb(zookeeper.Exception.create(zookeeper.Exception.CONNECTION_LOSS), null, 1); }); eventFired = false; });
it("Read no node error path", function (done) { zkClient.getData.restore(); sandbox.stub(zkClient, "getData", function(path,watch,cb) { setTimeout(function() { cb(zookeeper.Exception.create(zookeeper.Exception.NO_NODE), null, 1); }, 100); }); var scheduler = new Scheduler({tasks: { task1:{isSubmitted:true} },useZk: true, logging: {level: "debug"}, zkClient: zkClient, taskHelper: taskHelper}); scheduler.on("ready", function() { done(); }); clock.tick(100); clock.tick(100); });
it("Read zk OOB error", function (done) { var isReady = false; zkClient.getData.restore(); sandbox.stub(zkClient, "getData", function(path,watch,cb) { var self = this; setTimeout(function() { var err = zookeeper.Exception.create(zookeeper.Exception.CONNECTION_LOSS); self.emit("error", err); cb(err, null, 1); }, 100); }); var scheduler = Scheduler({tasks: { task1:{isSubmitted:true} },useZk: true, logging: {level: "debug"}, zkClient: zkClient, taskHelper: taskHelper}); scheduler.on("ready", function() { isReady = true; console.log("got to ready"); expect(true).to.be.false; }); setTimeout(function () { expect(isReady).to.be.false; done(); }, 400); clock.tick(100); clock.tick(400); });
cb(zookeeper.Exception.create(zookeeper.Exception.NO_NODE), null, 1); });
var zkClient = zookeeper.createClient("127.0.0.1"); before(function () { sandbox = sinon.sandbox.create(); sandbox.stub(zkClient, "connect", function () { this.emit("connected"); cb(zookeeper.Exception.create(zookeeper.Exception.CONNECTION_LOSS), null); }); cb(zookeeper.Exception.create(zookeeper.Exception.CONNECTION_LOSS), null); });
it("Read other error path", function (done) { var isReady = false; zkClient.getData.restore(); sandbox.stub(zkClient, "getData", function(path,watch,cb) { setTimeout(function() { cb(zookeeper.Exception.create(zookeeper.Exception.CONNECTION_LOSS), null, 1); //cb(null, "434e8173-45ea-435e-905e-d577b260898c-2021", 1); }, 100); }); var scheduler = new Scheduler({tasks: { task1:{isSubmitted:true} },useZk: true, logging: {level: "debug"}, zkClient: zkClient, taskHelper: taskHelper}); scheduler.on("ready", function() { isReady = true; console.log("got to ready"); expect(true).to.be.false; }); setTimeout(function () { expect(isReady).to.be.false; done(); }, 400); clock.tick(100); clock.tick(400); });
zkClient.getData.callsArgWith(2, zookeeper.Exception.create(zookeeper.Exception.NO_NODE)); zkClient.mkdirp.callsArgWith(1, null); zkClient.setData.callsArgWith(2, null);
it("Connect fail", function (done) { var isReady = false; zkClient.getData.restore(); sandbox.stub(zkClient, "getData", function(path,watch,cb) { setTimeout(function() { cb(zookeeper.Exception.create(zookeeper.Exception.CONNECTION_LOSS), null, 1); }, 100); }); var scheduler = Scheduler({tasks: { task1:{isSubmitted:true} },useZk: true, logging: {level: "debug"}, zkClient: zkClient}); scheduler.on("error", function(error) { console.log(JSON.stringify(error)); }); scheduler.on("ready", function() { isReady = true; console.log("got to ready"); }); setTimeout(function () { expect(isReady).to.be.false; done(); }, 400); clock.tick(100); clock.tick(400); });