cloudron-e2e-test/mailer.js

51 lines
1.5 KiB
JavaScript
Raw Normal View History

2015-07-23 19:02:16 +00:00
/* jslint node: true */
'use strict';
var assert = require('assert'),
debug = require('debug')('e2e:mailer'),
2015-07-23 19:42:23 +00:00
postmark = require('postmark')(process.env.POSTMARK_API_KEY),
2015-07-23 19:02:16 +00:00
util = require('util');
exports = module.exports = {
sendEndToEndTestResult: sendEndToEndTestResult
};
function send(options, callback) {
assert.strictEqual(typeof options, 'object');
assert.strictEqual(typeof options.to, 'string');
assert.strictEqual(typeof options.subject, 'string');
assert.strictEqual(typeof options.text, 'string');
debug('Sending email to %s with subject "%s".', options.to, options.subject);
postmark.send({
'From': options.from || 'no-reply@cloudron.io',
'To': options.to,
'Bcc': options.bcc,
'Subject': options.subject,
'TextBody': options.text,
'HtmlBody': options.html,
'Tag': 'Important'
}, function (error, success) {
if (error) {
console.error('Unable to send via postmark: ', error);
return callback(error);
}
callback();
});
}
function sendEndToEndTestResult(topic, stdout, stderr, callback) {
debug('Sending e2e test result for %s', topic);
var mailOptions = {
to: 'admin@cloudron.io',
subject: util.format('E2E test results for box %s', topic),
text: 'stdout\n------\n' + stdout.toString('utf8') + '\n\nstderr\n------\n' + stderr.toString('utf8') + '\n\n'
};
send(mailOptions, callback);
}