From 28d6a1b46e8c713aece97333eea540d532167130 Mon Sep 17 00:00:00 2001 From: ivaosthu Date: Wed, 17 Jan 2018 15:31:53 +0100 Subject: [PATCH] A bit of house-keeping --- lib/routes/admin-api/metrics.js | 11 ++++---- lib/routes/admin-api/metrics.test.js | 28 +++++++++++++++++++ lib/routes/admin-api/route-utils.js | 10 ------- .../fake-client-applications-store.js | 10 +++++-- 4 files changed, 42 insertions(+), 17 deletions(-) delete mode 100644 lib/routes/admin-api/route-utils.js diff --git a/lib/routes/admin-api/metrics.js b/lib/routes/admin-api/metrics.js index f2b057f4a6..ed68eeb195 100644 --- a/lib/routes/admin-api/metrics.js +++ b/lib/routes/admin-api/metrics.js @@ -4,7 +4,11 @@ const { Router } = require('express'); const logger = require('../../logger')('/admin-api/metrics.js'); const ClientMetrics = require('../../client-metrics'); -const { catchLogAndSendErrorResponse } = require('./route-utils'); + +const catchLogAndSendErrorResponse = (err, res) => { + logger.error(err); + res.status(500).end(); +}; exports.router = function(config) { const { @@ -67,10 +71,7 @@ exports.router = function(config) { clientApplicationsStore .upsert(input) .then(() => res.status(202).end()) - .catch(e => { - logger.error(e); - res.status(500).end(); - }); + .catch(err => catchLogAndSendErrorResponse(err, res)); }); function toLookup(metaData) { diff --git a/lib/routes/admin-api/metrics.test.js b/lib/routes/admin-api/metrics.test.js index 4fa5baafac..6d60600284 100644 --- a/lib/routes/admin-api/metrics.test.js +++ b/lib/routes/admin-api/metrics.test.js @@ -93,3 +93,31 @@ test('should return metrics for all toggles', t => { t.true(metrics.lastMinute !== undefined); }); }); + +test('should return applications', t => { + t.plan(2); + const { request, stores } = getSetup(); + const appName = '123!23'; + + stores.clientApplicationsStore.upsert({ appName }); + + return request + .get(`/api/admin/metrics/applications/`) + .expect(200) + .expect(res => { + const metrics = res.body; + t.true(metrics.applications.length === 1); + t.true(metrics.applications[0].appName === appName); + }); +}); + +test('should store application', t => { + t.plan(0); + const { request } = getSetup(); + const appName = '123!23'; + + return request + .post(`/api/admin/metrics/applications/${appName}`) + .send({ appName }) + .expect(202); +}); diff --git a/lib/routes/admin-api/route-utils.js b/lib/routes/admin-api/route-utils.js deleted file mode 100644 index 23f93dd627..0000000000 --- a/lib/routes/admin-api/route-utils.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -const logger = require('../../logger')('route-utils.js'); - -const catchLogAndSendErrorResponse = (err, res) => { - logger.error(err); - res.status(500).end(); -}; - -module.exports = { catchLogAndSendErrorResponse }; diff --git a/test/fixtures/fake-client-applications-store.js b/test/fixtures/fake-client-applications-store.js index 7d5d49ebfd..2f4f7b0921 100644 --- a/test/fixtures/fake-client-applications-store.js +++ b/test/fixtures/fake-client-applications-store.js @@ -1,6 +1,12 @@ 'use strict'; +const _appliations = []; + module.exports = () => ({ - upsert: () => Promise.resolve(), - getApplications: () => Promise.resolve([]), + upsert: app => { + _appliations.push(app); + return Promise.resolve(); + }, + getApplications: () => Promise.resolve(_appliations), + getApplication: appName => _appliations.filter(a => a.name === appName)[0], });