Fix various route handling tests

This commit is contained in:
Johannes Zellner
2018-01-26 21:31:04 +01:00
parent de8f7415c3
commit 6ef57d3f23
5 changed files with 77 additions and 84 deletions
+15 -8
View File
@@ -9,28 +9,35 @@ var appdb = require('../../appdb.js'),
async = require('async'),
config = require('../../config.js'),
database = require('../../database.js'),
domains = require('../../domains.js'),
expect = require('expect.js'),
nock = require('nock'),
superagent = require('superagent'),
server = require('../../server.js'),
settings = require('../../settings.js');
var SERVER_URL = 'http://localhost:' + config.get('port');
const SERVER_URL = 'http://localhost:' + config.get('port');
const USERNAME = 'superadmin', PASSWORD = 'Foobar?1337', EMAIL ='silly@me.com';
const DOMAIN_0 = {
domain: 'example-backups-test.com',
zoneName: 'example-backups-test.com',
config: {},
provider: 'noop',
fallbackCertificate: null
};
var USERNAME = 'superadmin', PASSWORD = 'Foobar?1337', EMAIL ='silly@me.com';
var DOMAIN = 'example-backups-test.com';
var token = null;
function setup(done) {
nock.cleanAll();
config._reset();
config.setVersion('1.2.3');
config.setFqdn(DOMAIN);
async.series([
server.start.bind(server),
server.start,
database._clear,
domains.add.bind(null, DOMAIN_0.domain, DOMAIN_0.zoneName, DOMAIN_0.provider, DOMAIN_0.config, DOMAIN_0.fallbackCertificate),
function createAdmin(callback) {
superagent.post(SERVER_URL + '/api/v1/cloudron/activate')
@@ -49,7 +56,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', DOMAIN, [ ] /* portBindings */, { }, callback);
appdb.add('appid', 'appStoreId', manifest, 'location', DOMAIN_0.domain, [ ] /* portBindings */, { }, callback);
},
function createSettings(callback) {
+15 -6
View File
@@ -10,6 +10,7 @@ var appdb = require('../../appdb.js'),
async = require('async'),
config = require('../../config.js'),
database = require('../../database.js'),
domains = require('../../domains.js'),
expect = require('expect.js'),
locker = require('../../locker.js'),
nock = require('nock'),
@@ -20,12 +21,20 @@ var appdb = require('../../appdb.js'),
settingsdb = require('../../settingsdb.js'),
shell = require('../../shell.js');
var SERVER_URL = 'http://localhost:' + config.get('port');
const SERVER_URL = 'http://localhost:' + config.get('port');
const USERNAME = 'superadmin';
const PASSWORD = 'Foobar?1337';
const EMAIL ='silly@me.com';
const DOMAIN_0 = {
domain: 'example-backups-test.com',
zoneName: 'example-backups-test.com',
config: {},
provider: 'noop',
fallbackCertificate: null
};
var USERNAME = 'superadmin', PASSWORD = 'Foobar?1337', EMAIL ='silly@me.com';
var token = null;
var DOMAIN = 'example-backups-test.com';
var gSudoOriginal = null;
function injectShellMock() {
gSudoOriginal = shell.sudo;
@@ -41,7 +50,6 @@ function setup(done) {
config._reset();
config.set('provider', 'caas');
config.setVersion('1.2.3');
config.setFqdn(DOMAIN);
async.series([
server.start.bind(server),
@@ -49,6 +57,7 @@ function setup(done) {
database._clear,
settingsdb.set.bind(null, settings.CAAS_CONFIG_KEY, JSON.stringify({ boxId: 'BOX_ID', token: 'ACCESS_TOKEN2' })),
domains.add.bind(null, DOMAIN_0.domain, DOMAIN_0.zoneName, DOMAIN_0.provider, DOMAIN_0.config, DOMAIN_0.fallbackCertificate),
function createAdmin(callback) {
var scope1 = nock(config.apiServerOrigin()).get('/api/v1/boxes/BOX_ID/setup/verify?setupToken=somesetuptoken').reply(200, {});
@@ -72,7 +81,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', DOMAIN, [ ] /* portBindings */, { }, callback);
appdb.add('appid', 'appStoreId', manifest, 'location', DOMAIN_0.domain, [ ] /* portBindings */, { }, callback);
},
function createSettings(callback) {
+2 -3
View File
@@ -141,11 +141,10 @@ describe('Domains API', function () {
.end(function (error, result) {
expect(result.statusCode).to.equal(200);
expect(result.body.domains).to.be.an(Array);
expect(result.body.domains.length).to.equal(3);
expect(result.body.domains.length).to.equal(2);
expect(result.body.domains[0].domain).to.equal(DOMAIN_0.domain);
expect(result.body.domains[1].domain).to.equal(DOMAIN);
expect(result.body.domains[2].domain).to.equal(DOMAIN_1.domain);
expect(result.body.domains[1].domain).to.equal(DOMAIN_1.domain);
done();
});
+16 -8
View File
@@ -9,6 +9,7 @@ var appdb = require('../../appdb.js'),
async = require('async'),
config = require('../../config.js'),
database = require('../../database.js'),
domains = require('../../domains.js'),
expect = require('expect.js'),
hock = require('hock'),
http = require('http'),
@@ -24,20 +25,27 @@ var appdb = require('../../appdb.js'),
superagent = require('superagent'),
url = require('url');
var SERVER_URL = 'http://localhost:' + config.get('port');
const SERVER_URL = 'http://localhost:' + config.get('port');
var USERNAME = 'superadmin', PASSWORD = 'Foobar?1337', EMAIL ='silly@me.com';
var DOMAIN = 'example-sysadmin-test.com';
const USERNAME = 'superadmin', PASSWORD = 'Foobar?1337', EMAIL ='silly@me.com';
const DOMAIN_0 = {
domain: 'example-sysadmin-test.com',
zoneName: 'example-sysadmin-test.com',
config: {},
provider: 'noop',
fallbackCertificate: null
};
function setup(done) {
config._reset();
config.setFqdn(DOMAIN);
config.setFqdn(DOMAIN_0.domain);
config.setVersion('1.2.3');
async.series([
server.start.bind(server),
server.start,
database._clear,
domains.add.bind(null, DOMAIN_0.domain, DOMAIN_0.zoneName, DOMAIN_0.provider, DOMAIN_0.config, DOMAIN_0.fallbackCertificate),
function createAdmin(callback) {
superagent.post(SERVER_URL + '/api/v1/cloudron/activate')
@@ -53,7 +61,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', DOMAIN, [ ] /* portBindings */, { }, callback);
appdb.add('appid', 'appStoreId', manifest, 'location', DOMAIN_0.domain, [ ] /* portBindings */, { }, callback);
},
function createSettings(callback) {
@@ -62,7 +70,7 @@ function setup(done) {
s3._mockInject(MockS3);
safe.fs.mkdirSync('/tmp/box-sysadmin-test');
settingsdb.set(settings.BACKUP_CONFIG_KEY, JSON.stringify({ provider: 'caas', token: 'BACKUP_TOKEN', fqdn: DOMAIN, key: 'key', prefix: 'boxid', format: 'tgz'}), callback);
settingsdb.set(settings.BACKUP_CONFIG_KEY, JSON.stringify({ provider: 'caas', token: 'BACKUP_TOKEN', fqdn: DOMAIN_0.domain, key: 'key', prefix: 'boxid', format: 'tgz'}), callback);
}
], done);
}
+29 -59
View File
@@ -5,41 +5,54 @@
'use strict';
var config = require('../../config.js'),
var async = require('async'),
config = require('../../config.js'),
constants = require('../../constants.js'),
database = require('../../database.js'),
domains = require('../../domains.js'),
tokendb = require('../../tokendb.js'),
expect = require('expect.js'),
groups = require('../../groups.js'),
mail = require('../../mail.js'),
mailer = require('../../mailer.js'),
superagent = require('superagent'),
server = require('../../server.js');
var SERVER_URL = 'http://localhost:' + config.get('port');
const SERVER_URL = 'http://localhost:' + config.get('port');
var USERNAME_0 = 'superaDmIn', PASSWORD = 'Foobar?1337', EMAIL_0 = 'silLY@me.com', EMAIL_0_NEW = 'stupID@me.com', DISPLAY_NAME_0_NEW = 'New Name';
var USERNAME_1 = 'userTheFirst', EMAIL_1 = 'taO@zen.mac';
var USERNAME_2 = 'userTheSecond', EMAIL_2 = 'USER@foo.bar', EMAIL_2_NEW = 'happy@ME.com';
var USERNAME_3 = 'ut', EMAIL_3 = 'user3@FOO.bar';
const DOMAIN_0 = {
domain: 'example-user-test.com',
zoneName: 'example-user-test.com',
config: {},
provider: 'noop',
fallbackCertificate: null
};
const USERNAME_0 = 'superaDmIn', PASSWORD = 'Foobar?1337', EMAIL_0 = 'silLY@me.com', EMAIL_0_NEW = 'stupID@me.com', DISPLAY_NAME_0_NEW = 'New Name';
const USERNAME_1 = 'userTheFirst', EMAIL_1 = 'taO@zen.mac';
const USERNAME_2 = 'userTheSecond', EMAIL_2 = 'USER@foo.bar', EMAIL_2_NEW = 'happy@ME.com';
const 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();
async.series([
server.start,
database._clear,
mailer._clearMailQueue,
domains.add.bind(null, DOMAIN_0.domain, DOMAIN_0.zoneName, DOMAIN_0.provider, DOMAIN_0.config, DOMAIN_0.fallbackCertificate),
mail.add.bind(null, DOMAIN_0.domain)
], function (error) {
expect(error).to.not.be.ok();
mailer._clearMailQueue();
groups.create('somegroupname', function (error, result) {
expect(error).to.not.be.ok();
database._clear(function (error) {
expect(error).to.eql(null);
groupObject = result;
groups.create('somegroupname', function (e, r) {
groupObject = r;
done();
});
done();
});
});
}
@@ -642,47 +655,4 @@ describe('User API', function () {
});
});
});
it('can set aliases', function (done) {
superagent.put(SERVER_URL + '/api/v1/users/' + user_0.id + '/aliases')
.query({ access_token: token })
.send({ aliases: [ 'give', 'me', 'more' ] })
.end(function (error, result) {
expect(result.statusCode).to.equal(200);
done();
});
});
it('cannot set alias as another user', function (done) {
superagent.put(SERVER_URL + '/api/v1/users/' + user_0.id + '/aliases')
.query({ access_token: token })
.send({ aliases: [ 'give', 'me', 'more', USERNAME_2 ] })
.end(function (error, result) {
expect(result.statusCode).to.equal(409);
done();
});
});
it('cannot set invalid alias', function (done) {
superagent.put(SERVER_URL + '/api/v1/users/' + user_0.id + '/aliases')
.query({ access_token: token })
.send({ aliases: [ 'apple-talk' ] })
.end(function (error, result) {
expect(result.statusCode).to.equal(400);
done();
});
});
it('can get aliases', function (done) {
superagent.get(SERVER_URL + '/api/v1/users/' + user_0.id + '/aliases')
.query({ access_token: token })
.end(function (error, result) {
expect(result.statusCode).to.equal(200);
expect(result.body.aliases.length).to.be(3);
expect(result.body.aliases[0]).to.be('give');
expect(result.body.aliases[1]).to.be('me');
expect(result.body.aliases[2]).to.be('more');
done();
});
});
});