From 5ed3280a181bdc56096aa6a5a2fc10d3b819f348 Mon Sep 17 00:00:00 2001 From: Joe Fleming Date: Fri, 8 Jul 2016 18:35:32 -0700 Subject: [PATCH] test events triggered on queue, use mock queue --- test/src/worker.js | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/test/src/worker.js b/test/src/worker.js index 2bee0ec..2f20689 100644 --- a/test/src/worker.js +++ b/test/src/worker.js @@ -2,8 +2,9 @@ import expect from 'expect.js'; import sinon from 'sinon'; import moment from 'moment'; import { noop, random, get, find } from 'lodash'; -import Worker from '../../lib/worker'; import elasticsearchMock from '../fixtures/elasticsearch'; +import QueueMock from '../fixtures/queue'; +import Worker from '../../lib/worker'; import constants from '../../lib/helpers/constants'; const anchor = '2016-04-02T01:02:03.456'; // saturday @@ -23,9 +24,8 @@ describe('Worker class', function () { beforeEach(function () { client = new elasticsearchMock.Client(); - mockQueue = { - client: client - }; + mockQueue = new QueueMock(); + mockQueue.setClient(client); }); describe('invalid construction', function () { @@ -84,6 +84,37 @@ describe('Worker class', function () { }); }); + describe('event emitting', function () { + let worker; + + beforeEach(function () { + worker = new Worker(mockQueue, 'test', noop); + }); + + it('should trigger events on the queue instance', function (done) { + const eventName = 'test event'; + const payload1 = { + test: true, + deep: { object: 'ok' } + }; + const payload2 = 'two'; + const payload3 = new Error('test error'); + + mockQueue.on(eventName, (...args) => { + try { + expect(args[0]).to.equal(payload1); + expect(args[1]).to.equal(payload2); + expect(args[2]).to.equal(payload3); + done(); + } catch (e) { + done(e); + } + }); + + worker.emit(eventName, payload1, payload2, payload3); + }); + }); + describe('output formatting', function () { let worker; let f;