62c0059553a0cbce037a75909d01902063e9178d
2 /* eslint-disable capitalized-comments */
6 const assert
= require('assert');
7 const sinon
= require('sinon'); // eslint-disable-line node/no-unpublished-require
9 const stubDb
= require('../stub-db');
10 const stubLogger
= require('../stub-logger');
11 const Service
= require('../../src/service');
12 const Config
= require('../../config');
15 describe('Service', function () {
19 beforeEach(function () {
20 options
= new Config('test');
21 service
= new Service(stubLogger
, stubDb
, options
);
22 sinon
.stub(service
.manager
);
23 sinon
.stub(service
.sessionManager
);
24 sinon
.stub(service
.authenticator
);
25 sinon
.stub(service
, 'setResponseType');
26 sinon
.stub(service
, 'serveFile');
27 sinon
.stub(service
, 'ingestBody').resolves();
29 getHeader: sinon
.stub(),
32 setHeader: sinon
.stub(),
41 afterEach(function () {
45 it('instantiates', function () {
49 describe('maybeIngestBody', function () {
50 beforeEach(function () {
51 sinon
.stub(service
, 'bodyData');
52 sinon
.stub(service
, 'parseBody').returns();
54 it('covers no body', async
function() {
55 service
.bodyData
.resolves();
56 await service
.maybeIngestBody(req
, res
, ctx
);
58 it('covers body', async
function() {
59 service
.bodyData
.resolves('data');
60 await service
.maybeIngestBody(req
, res
, ctx
);
62 }); // maybeIngestBody
64 describe('handlerPostRoot', function () {
65 it('covers public mode', async
function () {
66 await service
.handlerPostRoot(req
, res
, ctx
);
67 assert(service
.manager
.postRoot
.called
);
69 }); // handlerPostRoot
71 describe('handlerGetRoot', function () {
72 it('covers', async
function () {
73 await service
.handlerGetRoot(req
, res
, ctx
);
74 assert(service
.manager
.getRoot
.called
);
78 describe('handlerGetHealthcheck', function () {
79 it('covers', async
function () {
80 await service
.handlerGetHealthcheck(req
, res
, ctx
);
81 assert(service
.manager
.getHealthcheck
.called
);
83 it('cover errors', async
function () {
84 const expectedException
= 'blah';
85 service
.manager
.getHealthcheck
.rejects(expectedException
);
87 await service
.handlerGetHealthcheck(req
, res
, ctx
);
88 assert
.fail('did not get expected exception');
90 assert
.strictEqual(e
.name
, expectedException
, 'did not get expected exception');
92 assert(service
.manager
.getHealthcheck
.called
);
94 }); // handlerGetHealthcheck
96 describe('handlerGetInfo', function () {
97 it('covers', async
function () {
98 await service
.handlerGetInfo(req
, res
, ctx
);
99 assert(service
.manager
.getInfo
.called
);
101 }); // handlerGetInfo
103 describe('handlerGetHistorySVG', function () {
104 it('covers', async
function () {
105 await service
.handlerGetHistorySVG(req
, res
, ctx
);
106 assert(service
.manager
.getHistorySVG
.called
);
108 }); // handlerGetHistorySVG
110 describe('handlerGetAdminOverview', function () {
111 it('covers authenticated', async
function () {
112 service
.authenticator
.sessionRequired
.resolves(false);
113 await service
.handlerGetAdminOverview(req
, res
, ctx
);
114 assert(service
.authenticator
.sessionRequired
.called
);
115 assert(service
.manager
.getAdminOverview
.notCalled
);
117 it('covers unauthenticated', async
function () {
118 service
.authenticator
.sessionRequired
.resolves(true);
119 await service
.handlerGetAdminOverview(req
, res
, ctx
);
120 assert(service
.authenticator
.sessionRequired
.called
);
121 assert(service
.manager
.getAdminOverview
.called
);
123 }); // handlerGetAdminOverview
125 describe('handlerGetAdminTopicDetails', function () {
126 it('covers unauthenticated', async
function () {
127 service
.authenticator
.sessionRequired
.resolves(false);
128 await service
.handlerGetAdminTopicDetails(req
, res
, ctx
);
129 assert(service
.authenticator
.sessionRequired
.called
);
130 assert(service
.manager
.getTopicDetails
.notCalled
);
132 it('covers authenticated', async
function () {
133 service
.authenticator
.sessionRequired
.resolves(true);
134 await service
.handlerGetAdminTopicDetails(req
, res
, ctx
);
135 assert(service
.authenticator
.sessionRequired
.called
);
136 assert(service
.manager
.getTopicDetails
.called
);
138 }); // handlerGetAdminTopicDetails
140 describe('handlerPostAdminProcess', function () {
141 it('covers', async
function () {
142 service
.serveFile
.resolves();
143 await service
.handlerPostAdminProcess(req
, res
, ctx
);
144 assert(service
.authenticator
.apiRequiredLocal
.called
);
145 assert(service
.manager
.processTasks
.called
);
147 }); // handlerPostAdminProcess
149 describe('handlerUpdateTopic', function () {
150 it('covers', async
function () {
151 sinon
.stub(service
, 'bodyData').resolves();
152 await service
.handlerUpdateTopic(req
, res
, ctx
);
153 assert(service
.authenticator
.apiRequiredLocal
.called
);
154 assert(service
.manager
.updateTopic
.called
);
156 }); // handlerUpdateTopic
158 describe('handlerUpdateSubscription', function () {
159 it('covers', async
function () {
160 sinon
.stub(service
, 'bodyData').resolves();
161 await service
.handlerUpdateSubscription(req
, res
, ctx
);
162 assert(service
.authenticator
.apiRequiredLocal
.called
);
163 assert(service
.manager
.updateSubscription
.called
);
165 }); // handlerUpdateSubscription
167 describe('handlerGetAdminLogin', function () {
168 it('covers', async
function () {
169 await service
.handlerGetAdminLogin(req
, res
, ctx
);
170 assert(service
.sessionManager
.getAdminLogin
.called
);
172 }); // handlerGetAdminLogin
174 describe('handlerPostAdminLogin', function () {
175 it('covers', async
function () {
176 sinon
.stub(service
, 'bodyData').resolves();
177 await service
.handlerPostAdminLogin(req
, res
, ctx
);
178 assert(service
.sessionManager
.postAdminLogin
.called
);
180 }); // handlerPostAdminLogin
182 describe('handlerGetAdminLogout', function () {
183 it('covers', async
function () {
184 await service
.handlerGetAdminLogout(req
, res
, ctx
);
185 assert(service
.sessionManager
.getAdminLogout
.called
);
187 }); // handlerGetAdminLogout
189 describe('handlerGetAdminIA', function () {
190 it('covers', async
function () {
191 await service
.handlerGetAdminIA(req
, res
, ctx
);
192 assert(service
.sessionManager
.getAdminIA
.called
);
194 }); // handlerGetAdminIA