diff --git a/src/routes/cloudron.js b/src/routes/cloudron.js index 39a7fb1b7..b2a8181bb 100644 --- a/src/routes/cloudron.js +++ b/src/routes/cloudron.js @@ -65,7 +65,7 @@ function activate(req, res, next) { if (error && !error.response) return next(new HttpError(500, error)); if (result.statusCode === 403) return next(new HttpError(403, 'Invalid token')); if (result.statusCode === 409) return next(new HttpError(409, 'Already setup')); - if (result.statusCode !== 201) return next(new HttpError(500, result.text ? result.text.message : 'Internal error')); + if (result.statusCode !== 201) return next(new HttpError(500, result.text || 'Internal error')); next(new HttpSuccess(201, info)); }); @@ -84,7 +84,7 @@ function setupTokenAuth(req, res, next) { if (error && !error.response) return next(new HttpError(500, error)); if (result.statusCode === 403) return next(new HttpError(403, 'Invalid token')); if (result.statusCode === 409) return next(new HttpError(409, 'Already setup')); - if (result.statusCode !== 200) return next(new HttpError(500, result.text ? result.text.message : 'Internal error')); + if (result.statusCode !== 200) return next(new HttpError(500, result.text || 'Internal error')); next(); }); diff --git a/src/routes/test/cloudron-test.js b/src/routes/test/cloudron-test.js index 190c6b5f0..a7396c530 100644 --- a/src/routes/test/cloudron-test.js +++ b/src/routes/test/cloudron-test.js @@ -62,6 +62,19 @@ describe('Cloudron', function () { }); }); + it('fails due to internal server error on appstore side', function (done) { + var scope = nock(config.apiServerOrigin()).get('/api/v1/boxes/' + config.fqdn() + '/setup/verify?setupToken=somesetuptoken').reply(500, { message: 'this is wrong' }); + + superagent.post(SERVER_URL + '/api/v1/cloudron/activate') + .query({ setupToken: 'somesetuptoken' }) + .send({ username: 'someuser', password: 'somepassword', email: 'admin@foo.bar' }) + .end(function (error, result) { + expect(result.statusCode).to.equal(500); + expect(scope.isDone()).to.be.ok(); + done(); + }); + }); + it('fails due to empty username', function (done) { var scope = nock(config.apiServerOrigin()).get('/api/v1/boxes/' + config.fqdn() + '/setup/verify?setupToken=somesetuptoken').reply(200, {});