get rid of mail queue

this prevents us from returning mail errors synchronously
This commit is contained in:
Girish Ramakrishnan
2019-04-15 16:36:37 -07:00
parent e23fd5e3c5
commit fa5415b1eb
6 changed files with 61 additions and 92 deletions
+6 -5
View File
@@ -47,13 +47,13 @@ var AUDIT_SOURCE = {
function checkMails(number, email, done) {
// mails are enqueued async
setTimeout(function () {
expect(mailer._getMailQueue().length).to.equal(number);
expect(mailer._mailQueue.length).to.equal(number);
if (number) {
expect(mailer._getMailQueue()[0].to).to.equal(email);
expect(mailer._mailQueue[0].to).to.equal(email);
}
mailer._clearMailQueue();
mailer._mailQueue = [];
done();
}, 500);
}
@@ -67,6 +67,8 @@ describe('digest', function () {
config.setFqdn(DOMAIN_0.domain);
safe.fs.unlinkSync(paths.UPDATE_CHECKER_FILE);
mailer._mailQueue = [];
async.series([
database.initialize,
database._clear,
@@ -84,12 +86,11 @@ describe('digest', function () {
},
eventlog.add.bind(null, eventlog.ACTION_UPDATE, AUDIT_SOURCE, { taskId: 12, boxUpdateInfo: { sourceTarballUrl: 'xx', version: '1.2.3', changelog: [ 'good stuff' ] } }),
maildb.update.bind(null, DOMAIN_0.domain, { enabled: true }),
mailer._clearMailQueue
], done);
});
after(function (done) {
mailer._clearMailQueue();
mailer._mailQueue = [];
safe.fs.unlinkSync(paths.UPDATE_CHECKER_FILE);
async.series([
+15 -9
View File
@@ -51,14 +51,14 @@ const UPDATE_VERSION = semver.inc(config.version(), 'major');
function checkMails(number, done) {
// mails are enqueued async
setTimeout(function () {
expect(mailer._getMailQueue().length).to.equal(number);
mailer._clearMailQueue();
expect(mailer._mailQueue.length).to.equal(number);
mailer._mailQueue = [];
done();
}, 500);
}
function cleanup(done) {
mailer._clearMailQueue();
mailer._mailQueue = [];
safe.fs.unlinkSync(paths.UPDATE_CHECKER_FILE);
async.series([
@@ -76,6 +76,8 @@ describe('updatechecker - box - manual (email)', function () {
config.set('provider', 'notcaas');
safe.fs.unlinkSync(paths.UPDATE_CHECKER_FILE);
mailer._mailQueue = [];
async.series([
database.initialize,
database._clear,
@@ -85,7 +87,6 @@ describe('updatechecker - box - manual (email)', function () {
users.createOwner.bind(null, USER_0.username, USER_0.password, USER_0.email, USER_0.displayName, AUDIT_SOURCE),
settings.setBoxAutoupdatePattern.bind(null, constants.AUTOUPDATE_PATTERN_NEVER),
settingsdb.set.bind(null, settings.APPSTORE_CONFIG_KEY, JSON.stringify({ userId: 'uid', cloudronId: 'cid', token: 'token' })),
mailer._clearMailQueue
], done);
});
@@ -150,12 +151,13 @@ describe('updatechecker - box - automatic (no email)', function () {
config.set('apiServerOrigin', 'http://localhost:4444');
config.set('provider', 'notcaas');
mailer._mailQueue = [];
async.series([
database.initialize,
cron.startPostActivationJobs,
domains.add.bind(null, DOMAIN_0.domain, DOMAIN_0, AUDIT_SOURCE),
mail.addDomain.bind(null, DOMAIN_0.domain),
mailer._clearMailQueue,
users.createOwner.bind(null, USER_0.username, USER_0.password, USER_0.email, USER_0.displayName, AUDIT_SOURCE),
settingsdb.set.bind(null, settings.APPSTORE_CONFIG_KEY, JSON.stringify({ userId: 'uid', cloudronId: 'cid', token: 'token' }))
], done);
@@ -188,12 +190,13 @@ describe('updatechecker - box - automatic free (email)', function () {
config.set('apiServerOrigin', 'http://localhost:4444');
config.set('provider', 'notcaas');
mailer._mailQueue = [];
async.series([
database.initialize,
cron.startPostActivationJobs,
domains.add.bind(null, DOMAIN_0.domain, DOMAIN_0, AUDIT_SOURCE),
mail.addDomain.bind(null, DOMAIN_0.domain),
mailer._clearMailQueue,
users.createOwner.bind(null, USER_0.username, USER_0.password, USER_0.email, USER_0.displayName, AUDIT_SOURCE),
settingsdb.set.bind(null, settings.APPSTORE_CONFIG_KEY, JSON.stringify({ userId: 'uid', cloudronId: 'cid', token: 'token' }))
], done);
@@ -252,13 +255,14 @@ describe('updatechecker - app - manual (email)', function () {
config.set('apiServerOrigin', 'http://localhost:4444');
config.set('provider', 'notcaas');
mailer._mailQueue = [];
async.series([
database.initialize,
database._clear,
cron.startPostActivationJobs,
domains.add.bind(null, DOMAIN_0.domain, DOMAIN_0, AUDIT_SOURCE),
mail.addDomain.bind(null, DOMAIN_0.domain),
mailer._clearMailQueue,
function (next) {
users.createOwner(USER_0.username, USER_0.password, USER_0.email, USER_0.displayName, AUDIT_SOURCE, function (error, userObject) {
if (error) return next(error);
@@ -375,13 +379,14 @@ describe('updatechecker - app - automatic (no email)', function () {
config.set('apiServerOrigin', 'http://localhost:4444');
config.set('provider', 'notcaas');
mailer._mailQueue = [];
async.series([
database.initialize,
database._clear,
cron.startPostActivationJobs,
domains.add.bind(null, DOMAIN_0.domain, DOMAIN_0, AUDIT_SOURCE),
mail.addDomain.bind(null, DOMAIN_0.domain),
mailer._clearMailQueue,
function (next) {
users.createOwner(USER_0.username, USER_0.password, USER_0.email, USER_0.displayName, AUDIT_SOURCE, function (error, userObject) {
if (error) return next(error);
@@ -448,13 +453,14 @@ describe('updatechecker - app - automatic free (email)', function () {
config.set('apiServerOrigin', 'http://localhost:4444');
config.set('provider', 'notcaas');
mailer._mailQueue = [];
async.series([
database.initialize,
database._clear,
cron.startPostActivationJobs,
domains.add.bind(null, DOMAIN_0.domain, DOMAIN_0, AUDIT_SOURCE),
mail.addDomain.bind(null, DOMAIN_0.domain),
mailer._clearMailQueue,
function (next) {
users.createOwner(USER_0.username, USER_0.password, USER_0.email, USER_0.displayName, AUDIT_SOURCE, function (error, userObject) {
if (error) return next(error);
+8 -6
View File
@@ -49,11 +49,12 @@ const DOMAIN_0 = {
};
function cleanupUsers(done) {
mailer._mailQueue = [];
async.series([
groupdb._clear,
userdb._clear,
mailboxdb._clear,
mailer._clearMailQueue
], done);
}
@@ -72,17 +73,18 @@ function setup(done) {
config._reset();
config.setFqdn(DOMAIN_0.domain);
mailer._mailQueue = [];
async.series([
database.initialize,
database._clear,
domains.add.bind(null, DOMAIN_0.domain, DOMAIN_0, AUDIT_SOURCE),
mail.addDomain.bind(null, DOMAIN_0.domain),
mailer._clearMailQueue
], done);
}
function cleanup(done) {
mailer._clearMailQueue();
mailer._mailQueue = [];
async.series([
database._clear,
@@ -98,11 +100,11 @@ function checkMails(number, options, callback) {
// mails are enqueued async
setTimeout(function () {
expect(mailer._getMailQueue().length).to.equal(number);
expect(mailer._mailQueue.length).to.equal(number);
if (options && options.sentTo) expect(mailer._getMailQueue().some(function (mail) { return mail.to === options.sentTo; }));
if (options && options.sentTo) expect(mailer._mailQueue.some(function (mail) { return mail.to === options.sentTo; }));
mailer._clearMailQueue();
mailer._mailQueue = [];
callback();
}, 500);