Cleanup sysadmin backup trigger test to only test for backup start event

This commit is contained in:
Johannes Zellner
2018-06-30 14:33:51 +02:00
parent 7b540a1d2d
commit 8a1de81284
+18 -57
View File
@@ -5,25 +5,16 @@
'use strict'; 'use strict';
var appdb = require('../../appdb.js'), var async = require('async'),
async = require('async'),
config = require('../../config.js'), config = require('../../config.js'),
database = require('../../database.js'), database = require('../../database.js'),
domains = require('../../domains.js'), domains = require('../../domains.js'),
eventlog = require('../../eventlog.js'),
expect = require('expect.js'), expect = require('expect.js'),
hock = require('hock'),
http = require('http'),
MockS3 = require('mock-aws-s3'),
os = require('os'),
path = require('path'),
rimraf = require('rimraf'),
s3 = require('../../storage/s3.js'),
safe = require('safetydance'),
server = require('../../server.js'), server = require('../../server.js'),
settings = require('../../settings.js'), settings = require('../../settings.js'),
settingsdb = require('../../settingsdb.js'), settingsdb = require('../../settingsdb.js'),
superagent = require('superagent'), superagent = require('superagent');
url = require('url');
const SERVER_URL = 'http://localhost:' + config.get('port'); const SERVER_URL = 'http://localhost:' + config.get('port');
@@ -38,8 +29,6 @@ const DOMAIN_0 = {
tlsConfig: { provider: 'fallback' } tlsConfig: { provider: 'fallback' }
}; };
var ownerId = null;
function setup(done) { function setup(done) {
config._reset(); config._reset();
config.setFqdn(DOMAIN_0.domain); config.setFqdn(DOMAIN_0.domain);
@@ -57,75 +46,47 @@ function setup(done) {
.end(function (error, result) { .end(function (error, result) {
expect(result).to.be.ok(); expect(result).to.be.ok();
expect(result.statusCode).to.eql(201); expect(result.statusCode).to.eql(201);
ownerId = result.body.userId;
callback(); callback();
}); });
}, },
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_0.domain, ownerId, [ ] /* portBindings */, { }, callback);
},
function createSettings(callback) { function createSettings(callback) {
MockS3.config.basePath = path.join(os.tmpdir(), 's3-sysadmin-test-buckets/');
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_0.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); ], done);
} }
function cleanup(done) { function cleanup(done) {
s3._mockRestore();
rimraf.sync(MockS3.config.basePath);
database._clear(function (error) { database._clear(function (error) {
expect(!error).to.be.ok(); expect(!error).to.be.ok();
server.stop(done); server.stop(done);
}); });
} }
describe('Internal API', function () { describe('Internal API', function () {
this.timeout(5000);
before(setup); before(setup);
after(cleanup); after(cleanup);
var apiHockInstance = hock.createHock({ throwOnUnmatched: false }), apiHockServer;
before(function (done) {
apiHockInstance
.post('/api/v1/boxes/' + config.adminDomain() + '/awscredentials?token=BACKUP_TOKEN')
.reply(201, { credentials: { AccessKeyId: 'accessKeyId', SecretAccessKey: 'secretAccessKey' } });
var port = parseInt(url.parse(config.apiServerOrigin()).port, 10);
apiHockServer = http.createServer(apiHockInstance.handler).listen(port, done);
});
after(function (done) {
apiHockServer.close();
done();
});
describe('backup', function () { describe('backup', function () {
it('succeeds', function (done) { it('succeeds', function (done) {
superagent.post(config.sysadminOrigin() + '/api/v1/backup') superagent.post(config.sysadminOrigin() + '/api/v1/backup')
.end(function (error, result) { .end(function (error, result) {
expect(result.statusCode).to.equal(202); expect(result.statusCode).to.equal(202);
function checkAppstoreServerCalled() { function checkBackupStartEvent() {
apiHockInstance.done(function (error) { eventlog.getAllPaged([ eventlog.ACTION_BACKUP_START ], '', 1, 100, function (error, result) {
if (!error) return done(); expect(error).to.equal(null);
setTimeout(checkAppstoreServerCalled, 100); if (result.length === 0) return setTimeout(checkBackupStartEvent, 1000);
});
}
checkAppstoreServerCalled(); done();
}); });
}
checkBackupStartEvent();
});
}); });
}); });
}); });