From b14c766e978ac445951b30637b6919e9e599ebb3 Mon Sep 17 00:00:00 2001 From: ivaosthu Date: Thu, 10 Nov 2016 22:05:50 +0100 Subject: [PATCH] Started on unit test for metrics-route --- lib/routes/metrics.js | 2 +- test/unit/routes/metrics.test.js | 44 +++++++++++++++++++ .../mocks/fake-client-instance-store.js | 5 +++ .../mocks/fake-client-strategy-store.js | 5 +++ 4 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 test/unit/routes/metrics.test.js create mode 100644 test/unit/routes/mocks/fake-client-instance-store.js create mode 100644 test/unit/routes/mocks/fake-client-strategy-store.js diff --git a/lib/routes/metrics.js b/lib/routes/metrics.js index 434fb59d87..236192c22c 100644 --- a/lib/routes/metrics.js +++ b/lib/routes/metrics.js @@ -75,7 +75,7 @@ module.exports = function (app, config) { joi.validate(data, clientRegisterSchema, (err, cleaned) => { if (err) { - return res.json(400, err); + return res.status(400).json(err); } clientStrategyStore.insert(cleaned.appName, cleaned.strategies) diff --git a/test/unit/routes/metrics.test.js b/test/unit/routes/metrics.test.js new file mode 100644 index 0000000000..fd012e7296 --- /dev/null +++ b/test/unit/routes/metrics.test.js @@ -0,0 +1,44 @@ +'use strict'; + +const clientMetricsStore = require('./mocks/fake-metrics-store'); +const clientStrategyStore = require('./mocks/fake-client-strategy-store'); +const clientInstanceStore = require('./mocks/fake-client-instance-store'); + +const supertest = require('supertest'); +const assert = require('assert'); +const sinon = require('sinon'); + +let request; + +describe('Unit: The metrics api', () => { + beforeEach(done => { + const app = require('../../../app')({ + baseUriPath: '', + stores: { + db: sinon.stub(), + eventStore: sinon.stub(), + featureToggleStore: sinon.stub(), + clientMetricsStore, + strategyStore: sinon.stub(), + clientStrategyStore, + clientInstanceStore, + }, + }); + + request = supertest(app); + done(); + }); + + it('should register client', (done) => { + request + .post('/api/client/register') + .send({ appName: 'demo', instanceId: 'test', strategies: ['default'], started: Date.now(), interval: 10 }) + .expect(200, done); + }); + + it('should require appName field', (done) => { + request + .post('/api/client/register') + .expect(400, done) + }); +}); diff --git a/test/unit/routes/mocks/fake-client-instance-store.js b/test/unit/routes/mocks/fake-client-instance-store.js new file mode 100644 index 0000000000..e57c13425c --- /dev/null +++ b/test/unit/routes/mocks/fake-client-instance-store.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = { + insert: () => Promise.resolve(), +}; diff --git a/test/unit/routes/mocks/fake-client-strategy-store.js b/test/unit/routes/mocks/fake-client-strategy-store.js new file mode 100644 index 0000000000..e57c13425c --- /dev/null +++ b/test/unit/routes/mocks/fake-client-strategy-store.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = { + insert: () => Promise.resolve(), +};