Cleanup sysadmin backup trigger test to only test for backup start event
This commit is contained in:
@@ -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();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
Reference in New Issue
Block a user