diff --git a/src/server.js b/src/server.js index ba793ad5b..c09196724 100755 --- a/src/server.js +++ b/src/server.js @@ -53,7 +53,8 @@ function checkData(data) { function update(req, res, next) { assert.strictEqual(typeof req.body, 'object'); - if (typeof req.body.sourceTarballUrl !== 'string') return next(new HttpError(400, 'No sourceTarballUrl provided')); + if (!req.body.sourceTarballUrl || typeof req.body.sourceTarballUrl !== 'string') return next(new HttpError(400, 'No sourceTarballUrl provided')); + if (!req.body.data || typeof req.body.data !== 'object') return next(new HttpError(400, 'No data provided')); debug('provision: received from box %j', req.body); diff --git a/src/test/installer-test.js b/src/test/installer-test.js index 6d7670282..262d5ead7 100644 --- a/src/test/installer-test.js +++ b/src/test/installer-test.js @@ -108,104 +108,6 @@ describe('Server', function () { }); }); - describe('provision - restore', function () { - var data = { - sourceTarballUrl: 'https://sourceTarballUrl', - - data: { - boxVersionsUrl: 'https://versions.json', - version: '0.1', - restoreUrl: 'https://restoreurl', - restoreKey: 'somebackupkey', - token: 'sometoken', - apiServerOrigin: APPSERVER_ORIGIN, - webServerOrigin: 'https://somethingelse.com', - fqdn: 'www.something.com', - tlsKey: 'key', - tlsCert: 'cert' - } - }; - - before(function (done) { - process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; // TODO: use a installer ca signed cert instead - server.start(done); - }); - - after(function (done) { - server.stop(done); - delete process.env.NODE_TLS_REJECT_UNAUTHORIZED; - }); - - Object.keys(data).forEach(function (key) { - it('fails due to missing ' + key, function (done) { - var dataCopy = _.merge({ }, data); - delete dataCopy[key]; - - request.post(EXTERNAL_SERVER_URL + '/api/v1/installer/restore').send(dataCopy).end(function (error, result) { - expect(error).to.not.be.ok(); - expect(result.statusCode).to.equal(400); - done(); - }); - }); - }); - - it('succeeds', function (done) { - request.post(EXTERNAL_SERVER_URL + '/api/v1/installer/restore').send(data).end(function (error, result) { - expect(error).to.not.be.ok(); - expect(result.statusCode).to.equal(202); - done(); - }); - }); - }); - - describe('provision - provision', function () { - var data = { - sourceTarballUrl: 'https://sourceTarballUrl', - - data: { - boxVersionsUrl: 'https://versions.json', - version: '0.1', - token: 'sometoken', - apiServerOrigin: APPSERVER_ORIGIN, - webServerOrigin: 'https://somethingelse.com', - fqdn: 'www.something.com', - tlsKey: 'key', - tlsCert: 'cert' - } - }; - - before(function (done) { - process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; // TODO: use a installer ca signed cert instead - server.start(done); - }); - - after(function (done) { - server.stop(done); - delete process.env.NODE_TLS_REJECT_UNAUTHORIZED; - }); - - Object.keys(data).forEach(function (key) { - it('fails due to missing ' + key, function (done) { - var dataCopy = _.merge({ }, data); - delete dataCopy[key]; - - request.post(EXTERNAL_SERVER_URL + '/api/v1/installer/provision').send(dataCopy).end(function (error, result) { - expect(error).to.not.be.ok(); - expect(result.statusCode).to.equal(400); - done(); - }); - }); - }); - - it('succeeds', function (done) { - request.post(EXTERNAL_SERVER_URL + '/api/v1/installer/provision').send(data).end(function (error, result) { - expect(error).to.not.be.ok(); - expect(result.statusCode).to.equal(202); - done(); - }); - }); - }); - describe('logs', function () { before(function (done) { process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; // TODO: use a installer ca signed cert instead