From eae6942ec2429f27e2c8a85cac262b9eeea998e1 Mon Sep 17 00:00:00 2001 From: Joe Fleming Date: Mon, 27 Jun 2016 14:14:23 -0700 Subject: [PATCH] add tests for true/false and emits on errors --- test/src/worker.js | 47 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/test/src/worker.js b/test/src/worker.js index e18bc80..13c9d1e 100644 --- a/test/src/worker.js +++ b/test/src/worker.js @@ -372,11 +372,31 @@ describe('Worker class', function () { expect(msg).to.equal(false); }); - it('should swallow version mismatch errors', function () { + it('should return true on version errors', function () { mockQueue.client.update.restore(); sinon.stub(mockQueue.client, 'update').returns(Promise.reject({ statusCode: 409 })); - return worker._claimJob(job); + return worker._claimJob(job) + .then((res) => expect(res).to.equal(true)); }); + + it('should return false on other errors', function () { + mockQueue.client.update.restore(); + sinon.stub(mockQueue.client, 'update').returns(Promise.reject({ statusCode: 401 })); + return worker._claimJob(job) + .then((res) => expect(res).to.equal(false)); + }); + + it('should emit on other errors', function (done) { + mockQueue.client.update.restore(); + sinon.stub(mockQueue.client, 'update').returns(Promise.reject({ statusCode: 401 })); + + worker.on('claim_error', function (err) { + expect(err).to.have.property('statusCode', 401); + done(); + }); + worker._claimJob(job); + }); + }); describe('failing a job', function () { @@ -423,10 +443,29 @@ describe('Worker class', function () { expect(doc.output).to.have.property('content', msg); }); - it('should swallow version mismatch errors', function () { + it('should return true on version mismatch errors', function () { mockQueue.client.update.restore(); sinon.stub(mockQueue.client, 'update').returns(Promise.reject({ statusCode: 409 })); - return worker._failJob(job); + return worker._failJob(job) + .then((res) => expect(res).to.equal(true)); + }); + + it('should return false on other errors', function () { + mockQueue.client.update.restore(); + sinon.stub(mockQueue.client, 'update').returns(Promise.reject({ statusCode: 401 })); + return worker._failJob(job) + .then((res) => expect(res).to.equal(false)); + }); + + it('should emit on other errors', function (done) { + mockQueue.client.update.restore(); + sinon.stub(mockQueue.client, 'update').returns(Promise.reject({ statusCode: 401 })); + + worker.on('fail_error', function (err) { + expect(err).to.have.property('statusCode', 401); + done(); + }); + worker._failJob(job); }); it('should set completed time and status to failed', function () {