more async'ification
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
const async = require('async'),
|
||||
constants = require('../../constants.js'),
|
||||
const constants = require('../../constants.js'),
|
||||
database = require('../../database.js'),
|
||||
delay = require('delay'),
|
||||
expect = require('expect.js'),
|
||||
@@ -12,8 +11,7 @@ const async = require('async'),
|
||||
settings = require('../../settings.js'),
|
||||
support = require('../../support.js'),
|
||||
superagent = require('superagent'),
|
||||
tokens = require('../../tokens.js'),
|
||||
util = require('util');
|
||||
tokens = require('../../tokens.js');
|
||||
|
||||
exports = module.exports = {
|
||||
setup,
|
||||
@@ -47,72 +45,48 @@ exports = module.exports = {
|
||||
serverUrl: `http://localhost:${constants.PORT}`,
|
||||
};
|
||||
|
||||
function setupServer(done) {
|
||||
async.series([
|
||||
server.start.bind(null),
|
||||
database._clear,
|
||||
settings._setApiServerOrigin.bind(null, exports.mockApiServerOrigin),
|
||||
], done);
|
||||
async function setupServer() {
|
||||
await server.start();
|
||||
await database._clear();
|
||||
await settings._setApiServerOrigin(exports.mockApiServerOrigin);
|
||||
}
|
||||
|
||||
function setup(done) {
|
||||
async function setup() {
|
||||
const owner = exports.owner, serverUrl = exports.serverUrl, user = exports.user;
|
||||
|
||||
async.series([
|
||||
setupServer,
|
||||
async () => await safe(fs.promises.unlink(support._sshInfo().filePath)),
|
||||
settings.setCloudronToken.bind(null, exports.appstoreToken),
|
||||
await setupServer();
|
||||
await safe(fs.promises.unlink(support._sshInfo().filePath));
|
||||
await settings.setCloudronToken(exports.appstoreToken);
|
||||
|
||||
function setup(callback) {
|
||||
superagent.post(`${serverUrl}/api/v1/cloudron/setup`)
|
||||
.send({ dnsConfig: { provider: 'noop', domain: exports.dashboardDomain, config: {}, tlsConfig: { provider: 'fallback' } } })
|
||||
.end(function (error, result) {
|
||||
expect(result).to.be.ok();
|
||||
expect(result.statusCode).to.eql(200);
|
||||
// setup
|
||||
let response = await superagent.post(`${serverUrl}/api/v1/cloudron/setup`)
|
||||
.send({ dnsConfig: { provider: 'noop', domain: exports.dashboardDomain, config: {}, tlsConfig: { provider: 'fallback' } } });
|
||||
expect(response.status).to.eql(200);
|
||||
|
||||
setTimeout(callback, 2000);
|
||||
});
|
||||
},
|
||||
await delay(2000);
|
||||
|
||||
function createAdmin(callback) {
|
||||
superagent.post(`${serverUrl}/api/v1/cloudron/activate`)
|
||||
.query({ setupToken: 'somesetuptoken' })
|
||||
.send({ username: owner.username, password: owner.password, email: owner.email })
|
||||
.end(function (error, result) {
|
||||
expect(result).to.be.ok();
|
||||
expect(result.statusCode).to.eql(201);
|
||||
// create admin
|
||||
response = await superagent.post(`${serverUrl}/api/v1/cloudron/activate`)
|
||||
.query({ setupToken: 'somesetuptoken' })
|
||||
.send({ username: owner.username, password: owner.password, email: owner.email });
|
||||
expect(response.status).to.eql(201);
|
||||
owner.token = response.body.token;
|
||||
owner.id = response.body.userId;
|
||||
|
||||
// stash token for further use
|
||||
owner.token = result.body.token;
|
||||
owner.id = result.body.userId;
|
||||
|
||||
callback();
|
||||
});
|
||||
},
|
||||
|
||||
function createUser(callback) {
|
||||
superagent.post(`${serverUrl}/api/v1/users`)
|
||||
.query({ access_token: owner.token })
|
||||
.send({ username: user.username, email: user.email, password: user.password })
|
||||
.end(async function (error, result) {
|
||||
expect(error).to.not.be.ok();
|
||||
expect(result.statusCode).to.equal(201);
|
||||
|
||||
user.id = result.body.id;
|
||||
|
||||
// HACK to get a token for second user (passwords are generated and the user should have gotten a password setup link...)
|
||||
const token = await tokens.add({ identifier: user.id, clientId: 'test-client-id', expires: Date.now() + (60 * 60 * 1000), name: 'fromtest' });
|
||||
user.token = token.accessToken;
|
||||
callback();
|
||||
});
|
||||
}
|
||||
|
||||
], done);
|
||||
// create user
|
||||
response = await superagent.post(`${serverUrl}/api/v1/users`)
|
||||
.query({ access_token: owner.token })
|
||||
.send({ username: user.username, email: user.email, password: user.password });
|
||||
expect(response.status).to.equal(201);
|
||||
user.id = response.body.id;
|
||||
// HACK to get a token for second user (passwords are generated and the user should have gotten a password setup link...)
|
||||
const token = await tokens.add({ identifier: user.id, clientId: 'test-client-id', expires: Date.now() + (60 * 60 * 1000), name: 'fromtest' });
|
||||
user.token = token.accessToken;
|
||||
}
|
||||
|
||||
async function cleanup() {
|
||||
await database._clear();
|
||||
await util.promisify(server.stop)();
|
||||
await server.stop();
|
||||
}
|
||||
|
||||
function clearMailQueue() {
|
||||
|
||||
Reference in New Issue
Block a user