diff --git a/src/config.js b/src/config.js index 841ec822d..659ee92f2 100644 --- a/src/config.js +++ b/src/config.js @@ -126,6 +126,7 @@ function initConfig() { // overrides for local testings if (exports.TEST) { + data.version = '1.1.1-test'; data.port = 5454; data.token = 'APPSTORE_TOKEN'; data.apiServerOrigin = 'http://localhost:6060'; // hock doesn't support https diff --git a/src/routes/test/apps-test.js b/src/routes/test/apps-test.js index f1637510b..612f721aa 100644 --- a/src/routes/test/apps-test.js +++ b/src/routes/test/apps-test.js @@ -149,7 +149,7 @@ function startBox(done) { safe.fs.unlinkSync(paths.INFRA_VERSION_FILE); child_process.execSync('docker ps -qa | xargs --no-run-if-empty docker rm -f'); - config.setFqdn('foobar.com'); + config.setFqdn('example-apps-test.com'); config.setZoneName('foobar.com'); awsHostedZones = { diff --git a/src/routes/test/backups-test.js b/src/routes/test/backups-test.js index 60fcb4e5c..613c605fe 100644 --- a/src/routes/test/backups-test.js +++ b/src/routes/test/backups-test.js @@ -24,7 +24,7 @@ function setup(done) { nock.cleanAll(); config._reset(); config.setVersion('1.2.3'); - config.setFqdn('localhost'); + config.setFqdn('example-backups-test.com'); async.series([ server.start.bind(server), @@ -53,7 +53,7 @@ function setup(done) { function addApp(callback) { var manifest = { version: '0.0.1', manifestVersion: 1, dockerImage: 'foo', healthCheckPath: '/', httpPort: 3, title: 'ok', addons: { } }; - appdb.add('appid', 'appStoreId', manifest, 'location', [ ] /* portBindings */, { }, callback); + appdb.add('appid', 'appStoreId', manifest, 'location', config.fqdn(), [ ] /* portBindings */, { }, callback); }, function createSettings(callback) { diff --git a/src/routes/test/clients-test.js b/src/routes/test/clients-test.js index 95b0f4207..ad3eb8a03 100644 --- a/src/routes/test/clients-test.js +++ b/src/routes/test/clients-test.js @@ -23,6 +23,37 @@ var SERVER_URL = 'http://localhost:' + config.get('port'); var USERNAME = 'superadmin', PASSWORD = 'Foobar?1337', EMAIL ='silly@me.com'; var token = null; +function setup(done) { + config._reset(); + config.setFqdn('example-clients-test.com'); + config.set('provider', 'caas'); + + async.series([ + server.start, + database._clear, + + function (callback) { + var scope1 = nock(config.apiServerOrigin()).get('/api/v1/boxes/' + config.fqdn() + '/setup/verify?setupToken=somesetuptoken').reply(200, {}); + var scope2 = nock(config.apiServerOrigin()).post('/api/v1/boxes/' + config.fqdn() + '/setup/done?setupToken=somesetuptoken').reply(201, {}); + + superagent.post(SERVER_URL + '/api/v1/cloudron/activate') + .query({ setupToken: 'somesetuptoken' }) + .send({ username: USERNAME, password: PASSWORD, email: EMAIL }) + .end(function (error, result) { + expect(result).to.be.ok(); + expect(result.statusCode).to.equal(201); + expect(scope1.isDone()).to.be.ok(); + expect(scope2.isDone()).to.be.ok(); + + // stash token for further use + token = result.body.token; + + callback(); + }); + } + ], done); +} + function cleanup(done) { database._clear(function (error) { expect(error).to.not.be.ok(); @@ -33,36 +64,7 @@ function cleanup(done) { describe('OAuth Clients API', function () { describe('add', function () { - before(function (done) { - // we test caas here - config.set('provider', 'caas'); - - async.series([ - server.start.bind(null), - database._clear.bind(null), - - function (callback) { - var scope1 = nock(config.apiServerOrigin()).get('/api/v1/boxes/' + config.fqdn() + '/setup/verify?setupToken=somesetuptoken').reply(200, {}); - var scope2 = nock(config.apiServerOrigin()).post('/api/v1/boxes/' + config.fqdn() + '/setup/done?setupToken=somesetuptoken').reply(201, {}); - - superagent.post(SERVER_URL + '/api/v1/cloudron/activate') - .query({ setupToken: 'somesetuptoken' }) - .send({ username: USERNAME, password: PASSWORD, email: EMAIL }) - .end(function (error, result) { - expect(result).to.be.ok(); - expect(result.statusCode).to.equal(201); - expect(scope1.isDone()).to.be.ok(); - expect(scope2.isDone()).to.be.ok(); - - // stash token for further use - token = result.body.token; - - callback(); - }); - }, - ], done); - }); - + before(setup), after(cleanup); it('fails without token', function (done) { @@ -192,27 +194,7 @@ describe('OAuth Clients API', function () { before(function (done) { async.series([ - server.start.bind(null), - database._clear.bind(null), - - function (callback) { - var scope1 = nock(config.apiServerOrigin()).get('/api/v1/boxes/' + config.fqdn() + '/setup/verify?setupToken=somesetuptoken').reply(200, {}); - var scope2 = nock(config.apiServerOrigin()).post('/api/v1/boxes/' + config.fqdn() + '/setup/done?setupToken=somesetuptoken').reply(201, {}); - - superagent.post(SERVER_URL + '/api/v1/cloudron/activate') - .query({ setupToken: 'somesetuptoken' }) - .send({ username: USERNAME, password: PASSWORD, email: EMAIL }) - .end(function (error, result) { - expect(result).to.be.ok(); - expect(scope1.isDone()).to.be.ok(); - expect(scope2.isDone()).to.be.ok(); - - // stash token for further use - token = result.body.token; - - callback(); - }); - }, + setup, function (callback) { superagent.post(SERVER_URL + '/api/v1/oauth/clients') @@ -278,27 +260,7 @@ describe('OAuth Clients API', function () { before(function (done) { async.series([ - server.start.bind(null), - database._clear.bind(null), - - function (callback) { - var scope1 = nock(config.apiServerOrigin()).get('/api/v1/boxes/' + config.fqdn() + '/setup/verify?setupToken=somesetuptoken').reply(200, {}); - var scope2 = nock(config.apiServerOrigin()).post('/api/v1/boxes/' + config.fqdn() + '/setup/done?setupToken=somesetuptoken').reply(201, {}); - - superagent.post(SERVER_URL + '/api/v1/cloudron/activate') - .query({ setupToken: 'somesetuptoken' }) - .send({ username: USERNAME, password: PASSWORD, email: EMAIL }) - .end(function (error, result) { - expect(result).to.be.ok(); - expect(scope1.isDone()).to.be.ok(); - expect(scope2.isDone()).to.be.ok(); - - // stash token for further use - token = result.body.token; - - callback(); - }); - }, + setup, function (callback) { superagent.post(SERVER_URL + '/api/v1/oauth/clients') @@ -410,51 +372,27 @@ describe('Clients', function () { next(); }; - function setup(done) { + function setup2(done) { async.series([ - server.start.bind(server), - database._clear.bind(null), + setup, + function (callback) { - var scope1 = nock(config.apiServerOrigin()).get('/api/v1/boxes/' + config.fqdn() + '/setup/verify?setupToken=somesetuptoken').reply(200, {}); - var scope2 = nock(config.apiServerOrigin()).post('/api/v1/boxes/' + config.fqdn() + '/setup/done?setupToken=somesetuptoken').reply(201, {}); - - superagent.post(SERVER_URL + '/api/v1/cloudron/activate') - .query({ setupToken: 'somesetuptoken' }) - .send({ username: USER_0.username, password: USER_0.password, email: USER_0.email }) - .end(function (error, result) { + superagent.get(SERVER_URL + '/api/v1/profile') + .query({ access_token: token }) + .end(function (error, result) { expect(result).to.be.ok(); - expect(result.statusCode).to.eql(201); - expect(scope1.isDone()).to.be.ok(); - expect(scope2.isDone()).to.be.ok(); + expect(result.statusCode).to.eql(200); - // stash for further use - token = result.body.token; + USER_0.id = result.body.id; - superagent.get(SERVER_URL + '/api/v1/profile') - .query({ access_token: token }) - .end(function (error, result) { - expect(result).to.be.ok(); - expect(result.statusCode).to.eql(200); - - USER_0.id = result.body.id; - - callback(); - }); + callback(); }); } ], done); } - function cleanup(done) { - database._clear(function (error) { - expect(error).to.not.be.ok(); - - server.stop(done); - }); - } - describe('get', function () { - before(setup); + before(setup2); after(cleanup); it('fails due to missing token', function (done) { @@ -497,7 +435,7 @@ describe('Clients', function () { }); describe('get tokens by client', function () { - before(setup); + before(setup2); after(cleanup); it('fails due to missing token', function (done) { @@ -550,7 +488,7 @@ describe('Clients', function () { }); describe('delete tokens by client', function () { - before(setup); + before(setup2); after(cleanup); it('fails due to missing token', function (done) { diff --git a/src/routes/test/cloudron-test.js b/src/routes/test/cloudron-test.js index 56d83ca38..7feac9762 100644 --- a/src/routes/test/cloudron-test.js +++ b/src/routes/test/cloudron-test.js @@ -28,13 +28,13 @@ var USERNAME_1 = 'userTheFirst', EMAIL_1 = 'taO@zen.mac', userId_1, token_1; function setup(done) { nock.cleanAll(); config._reset(); - config.set('version', '0.5.0'); - config.setFqdn('localhost'); + config.setFqdn('example-cloudron-test.com'); - server.start(function (error) { - if (error) return done(error); - settings.setBackupConfig({ provider: 'filesystem', backupFolder: '/tmp', format: 'tgz' }, done); - }); + async.series([ + server.start.bind(server), + database._clear, + settings.setBackupConfig.bind(null, { provider: 'filesystem', backupFolder: '/tmp', format: 'tgz' }) + ], done); } function cleanup(done) { @@ -255,7 +255,7 @@ describe('Cloudron', function () { it('succeeds (admin)', function (done) { var scope = nock(config.apiServerOrigin()) - .get('/api/v1/boxes/localhost?token=' + config.token()) + .get(`/api/v1/boxes/${config.fqdn()}?token=${config.token()}`) .reply(200, { box: { region: 'sfo', size: '1gb' }, user: { }}); superagent.get(SERVER_URL + '/api/v1/cloudron/config') diff --git a/src/routes/test/developer-test.js b/src/routes/test/developer-test.js index 923bc576b..bcdea6669 100644 --- a/src/routes/test/developer-test.js +++ b/src/routes/test/developer-test.js @@ -22,7 +22,13 @@ var token = null; // authentication token var server; function setup(done) { - server.start(done); + config._reset(); + config.setFqdn('example-developer-test.com'); + + async.series([ + server.start.bind(server), + database._clear + ], done); } function cleanup(done) { diff --git a/src/routes/test/domains-test.js b/src/routes/test/domains-test.js index 67d5ed0ad..1d608953d 100644 --- a/src/routes/test/domains-test.js +++ b/src/routes/test/domains-test.js @@ -33,9 +33,9 @@ describe('Domains API', function () { this.timeout(10000); before(function (done) { - // we test digitalocean here + config._reset(); config.set('provider', 'digitalocean'); - config.set('fqdn', 'example.com'); + config.setFqdn('example-domains-test.com'); async.series([ server.start.bind(null), diff --git a/src/routes/test/eventlog-test.js b/src/routes/test/eventlog-test.js index 885f8a830..638314ee4 100644 --- a/src/routes/test/eventlog-test.js +++ b/src/routes/test/eventlog-test.js @@ -22,6 +22,10 @@ var token = null; var USER_1_ID = null, token_1; function setup(done) { + config._reset(); + config.set('provider', 'notcaas'); + config.setFqdn('example-eventlog-test.com'); + async.series([ server.start.bind(server), diff --git a/src/routes/test/groups-test.js b/src/routes/test/groups-test.js index 3e7f4c5e4..575b70df5 100644 --- a/src/routes/test/groups-test.js +++ b/src/routes/test/groups-test.js @@ -28,7 +28,9 @@ var groupObject; var server; function setup(done) { + config._reset(); config.set('provider', 'caas'); + config.setFqdn('example-groups-test.com'); async.series([ server.start.bind(server), diff --git a/src/routes/test/oauth2-test.js b/src/routes/test/oauth2-test.js index cb6e718f4..e6bfb109b 100644 --- a/src/routes/test/oauth2-test.js +++ b/src/routes/test/oauth2-test.js @@ -294,6 +294,9 @@ describe('OAuth2', function () { }; function setup(done) { + config._reset(); + config.setFqdn(APP_0.domain); + async.series([ server.start, database._clear, diff --git a/src/routes/test/profile-test.js b/src/routes/test/profile-test.js index 36f6d102b..2fac3d8e8 100644 --- a/src/routes/test/profile-test.js +++ b/src/routes/test/profile-test.js @@ -26,6 +26,9 @@ describe('Profile API', function () { var token_0; function setup(done) { + config._reset(); + config.setFqdn('example-profile-test.com'); + server.start(function (error) { expect(!error).to.be.ok(); diff --git a/src/routes/test/server-test.js b/src/routes/test/server-test.js index 11f78a7a7..b419fdc1a 100644 --- a/src/routes/test/server-test.js +++ b/src/routes/test/server-test.js @@ -22,6 +22,8 @@ var token = null; var server; function setup(done) { + config._reset(); + config.setFqdn('example-server-test.com'); config.set('provider', 'caas'); config.setVersion('1.2.3'); diff --git a/src/routes/test/settings-test.js b/src/routes/test/settings-test.js index 00d8294e0..2def15b40 100644 --- a/src/routes/test/settings-test.js +++ b/src/routes/test/settings-test.js @@ -27,7 +27,8 @@ var USERNAME = 'superadmin', PASSWORD = 'Foobar?1337', EMAIL ='silly@me.com'; var token = null; function setup(done) { - // we test caas here + config._reset(); + config.setFqdn('example-settings-test.com'); config.set('provider', 'caas'); async.series([ diff --git a/src/routes/test/ssh-test.js b/src/routes/test/ssh-test.js index ebf33fe34..3e903841d 100644 --- a/src/routes/test/ssh-test.js +++ b/src/routes/test/ssh-test.js @@ -28,7 +28,8 @@ var token = null; var server; function setup(done) { - config.setFqdn('foobar.com'); + config._reset(); + config.setFqdn('example-ssh-test.com'); async.series([ server.start.bind(server), diff --git a/src/routes/test/sysadmin-test.js b/src/routes/test/sysadmin-test.js index fc28b24e8..d96209887 100644 --- a/src/routes/test/sysadmin-test.js +++ b/src/routes/test/sysadmin-test.js @@ -30,7 +30,8 @@ var SERVER_URL = 'http://localhost:' + config.get('port'); var USERNAME = 'superadmin', PASSWORD = 'Foobar?1337', EMAIL ='silly@me.com'; function setup(done) { - // we test caas here + config._reset(); + config.setFqdn('example-sysadmin-test.com'); config.set('provider', 'caas'); config.setVersion('1.2.3'); @@ -58,7 +59,7 @@ function setup(done) { function addApp(callback) { var manifest = { version: '0.0.1', manifestVersion: 1, dockerImage: 'foo', healthCheckPath: '/', httpPort: 3, title: 'ok', addons: { } }; - appdb.add('appid', 'appStoreId', manifest, 'location', 'example.com', [ ] /* portBindings */, { }, callback); + appdb.add('appid', 'appStoreId', manifest, 'location', config.fqdn(), [ ] /* portBindings */, { }, callback); }, function createSettings(callback) { diff --git a/src/routes/test/user-test.js b/src/routes/test/user-test.js index 096b555dc..0397ee0f9 100644 --- a/src/routes/test/user-test.js +++ b/src/routes/test/user-test.js @@ -26,6 +26,9 @@ var USERNAME_3 = 'ut', EMAIL_3 = 'user3@FOO.bar'; var groupObject; function setup(done) { + config._reset(); + config.setFqdn('example-user-test.com'); + server.start(function (error) { expect(!error).to.be.ok(); diff --git a/src/test/apptask-test.js b/src/test/apptask-test.js index 16760b216..2b8b060c4 100644 --- a/src/test/apptask-test.js +++ b/src/test/apptask-test.js @@ -81,7 +81,6 @@ var awsHostedZones; describe('apptask', function () { before(function (done) { config._reset(); - config.set('version', '0.5.0'); config.setFqdn(DOMAIN_0.domain); config.set('provider', 'caas'); diff --git a/src/test/digest-test.js b/src/test/digest-test.js index a400683a9..7987b7d6a 100644 --- a/src/test/digest-test.js +++ b/src/test/digest-test.js @@ -56,7 +56,6 @@ describe('digest', function () { before(function (done) { config._reset(); config.set('fqdn', 'domain.com'); - config.set('version', '1.0.0'); config.set('apiServerOrigin', 'http://localhost:4444'); config.set('provider', 'notcaas'); config.setFqdn(DOMAIN_0.domain); diff --git a/src/test/server-test.js b/src/test/server-test.js index 761c8e2cc..5352245ca 100644 --- a/src/test/server-test.js +++ b/src/test/server-test.js @@ -24,7 +24,7 @@ describe('Server', function () { this.timeout(5000); before(function () { - config.set('version', '0.5.0'); + config._reset(); config.set('provider', 'notcaas'); // otherwise, cron sets a caas timer for heartbeat causing the test to not quit }); diff --git a/src/test/updatechecker-test.js b/src/test/updatechecker-test.js index 7f946dac2..36f970e87 100644 --- a/src/test/updatechecker-test.js +++ b/src/test/updatechecker-test.js @@ -62,7 +62,6 @@ describe('updatechecker - box - manual (email)', function () { before(function (done) { config._reset(); config.setFqdn(DOMAIN_0.domain); - config.set('version', '1.0.0'); config.set('apiServerOrigin', 'http://localhost:4444'); config.set('provider', 'notcaas'); safe.fs.unlinkSync(paths.UPDATE_CHECKER_FILE); @@ -165,7 +164,6 @@ describe('updatechecker - box - manual (email)', function () { describe('updatechecker - box - automatic (no email)', function () { before(function (done) { config.setFqdn(DOMAIN_0.domain); - config.set('version', '1.0.0'); config.set('apiServerOrigin', 'http://localhost:4444'); config.set('provider', 'notcaas');