Add mailbox test

This commit is contained in:
Girish Ramakrishnan
2019-09-09 15:58:58 -07:00
parent 5f9b2f1159
commit d8cb100fc0
3 changed files with 89 additions and 4 deletions

View File

@@ -478,6 +478,7 @@ describe('App API', function () {
expect(res.statusCode).to.equal(200);
expect(res.body.id).to.eql(APP_ID);
expect(res.body.installationState).to.be.ok();
expect(res.body.mailboxName).to.be(APP_LOCATION + '.app');
done();
});
});
@@ -1084,10 +1085,12 @@ describe('App API', function () {
waitForTask(taskId, done);
});
it('did change env vars', function (done) {
it('did change location', function (done) {
apps.get(APP_ID, function (error, app) {
if (error) return done(error);
expect(app.mailboxName).to.be(APP_LOCATION_NEW + '.app'); // must follow location change
docker.getContainer(app.containerId).inspect(function (error, data) {
expect(error).to.not.be.ok();
expect(data.Config.Env).to.contain('CLOUDRON_APP_ORIGIN=https://' + APP_LOCATION_NEW + '.' + DOMAIN_0.domain);
@@ -1275,6 +1278,82 @@ describe('App API', function () {
});
});
describe('configure mailbox', function () {
it('fails with missing mailbox', function (done) {
superagent.post(SERVER_URL + '/api/v1/apps/' + APP_ID + '/configure/mailbox')
.query({ access_token: token })
.end(function (err, res) {
expect(res.statusCode).to.equal(400);
done();
});
});
it('fails with bad mailbox', function (done) {
superagent.post(SERVER_URL + '/api/v1/apps/' + APP_ID + '/configure/mailbox')
.query({ access_token: token })
.send({ mailbox: 'genos@cloudron.io' })
.end(function (err, res) {
expect(res.statusCode).to.equal(400);
done();
});
});
it('can set mailbox', function (done) {
superagent.post(SERVER_URL + '/api/v1/apps/' + APP_ID + '/configure/mailbox')
.query({ access_token: token })
.send({ mailboxName: 'genos' })
.end(function (err, res) {
expect(res.statusCode).to.equal(202);
taskId = res.body.taskId;
done();
});
});
it('wait for task', function (done) {
waitForTask(taskId, done);
});
it('did set mailbox', function (done) {
apps.get(APP_ID, function (error, app) {
if (error) return done(error);
docker.getContainer(app.containerId).inspect(function (error, data) {
expect(error).to.not.be.ok();
expect(data.Config.Env).to.contain('CLOUDRON_MAIL_FROM=genos@' + app.domain);
done();
});
});
});
it('can reset mailbox', function (done) {
superagent.post(SERVER_URL + '/api/v1/apps/' + APP_ID + '/configure/mailbox')
.query({ access_token: token })
.send({ mailboxName: null })
.end(function (err, res) {
expect(res.statusCode).to.equal(202);
taskId = res.body.taskId;
done();
});
});
it('wait for task', function (done) {
waitForTask(taskId, done);
});
it('did reset mailbox', function (done) {
apps.get(APP_ID, function (error, app) {
if (error) return done(error);
docker.getContainer(app.containerId).inspect(function (error, data) {
expect(error).to.not.be.ok();
expect(data.Config.Env).to.not.contain('CLOUDRON_MAIL_FROM=' + app.location + '@' + app.domain + '.app');
done();
});
});
});
});
describe('start/stop', function () {
it('non admin cannot stop app', function (done) {
superagent.post(SERVER_URL + '/api/v1/apps/' + APP_ID + '/stop')