56 lines
1.3 KiB
JavaScript
56 lines
1.3 KiB
JavaScript
const sinon = require('sinon');
|
|
const proxyquire = require('proxyquire').noCallThru();
|
|
|
|
const storage = {
|
|
setField: sinon.stub()
|
|
};
|
|
|
|
function request(id) {
|
|
return {
|
|
params: { id },
|
|
body: {}
|
|
};
|
|
}
|
|
|
|
function response() {
|
|
return {
|
|
sendStatus: sinon.stub()
|
|
};
|
|
}
|
|
|
|
const paramsRoute = proxyquire('../../server/routes/params', {
|
|
'../storage': storage
|
|
});
|
|
|
|
describe('/api/params', function() {
|
|
afterEach(function() {
|
|
storage.setField.reset();
|
|
});
|
|
|
|
it('calls storage.setField with the correct parameter', function() {
|
|
const req = request('x');
|
|
const dlimit = 2;
|
|
req.body.dlimit = dlimit;
|
|
const res = response();
|
|
paramsRoute(req, res);
|
|
sinon.assert.calledWith(storage.setField, 'x', 'dlimit', dlimit);
|
|
sinon.assert.calledWith(res.sendStatus, 200);
|
|
});
|
|
|
|
it('sends a 400 if dlimit is too large', function() {
|
|
const req = request('x');
|
|
const res = response();
|
|
req.body.dlimit = 21;
|
|
paramsRoute(req, res);
|
|
sinon.assert.calledWith(res.sendStatus, 400);
|
|
});
|
|
|
|
it('sends a 404 on failure', function() {
|
|
storage.setField.throws(new Error());
|
|
const req = request('x');
|
|
const res = response();
|
|
req.body.dlimit = 2;
|
|
paramsRoute(req, res);
|
|
sinon.assert.calledWith(res.sendStatus, 404);
|
|
});
|
|
});
|