UNPKG

linagora-rse

Version:
128 lines (112 loc) 3.42 kB
'use strict'; var expect = require('chai').expect; var q = require('q'); describe('The daily digest mail builder', function() { var module, resultedJson; var deps = { digesttracker: {}, email: { getMailer: function() { return { sendHTML: function(message, templateName, content) { resultedJson = { message: message, templateName: templateName, content: content }; return q(); } }; } } }; var dependencies = function(name) { return deps[name]; }; describe('The process function', function() { var digest = require('../fixtures/digest.json'); var user = require('../fixtures/user.json'); it('should reject if configHelpers cannot get base_url', function(done) { deps.helpers = { config: { getBaseUrl: function(user, callback) { callback(new Error('something error')); } } }; module = require('../../../lib/mail')(dependencies); module.process(user, digest).catch(function(err) { expect(err.message).to.equal('something error'); done(); }); }); it('should transform digest json into a proper content send by om-email', function() { deps.helpers = { config: { getBaseUrl: function(user, callback) { callback(null, 'http://test:12345'); } } }; module = require('../../../lib/mail')(dependencies); return module.process(user, digest).then(function() { return expect( JSON.stringify(resultedJson)).to.deep.equal( JSON.stringify(require('../fixtures/expected-digest-job-result.json'))); }); }); it('should reject if email.getMailer(user).sendHTML get error', function(done) { var errorMessage = 'something error'; deps.helpers = { config: { getBaseUrl: function(user, callback) { callback(null, 'http://test:12345'); } } }; deps.email = { getMailer: function() { return { sendHTML: function() { throw new Error(errorMessage); } }; } }; module = require('../../../lib/mail')(dependencies); module.process(user, digest).catch(function(err) { expect(err.message).to.equal(errorMessage); done(); }); }); it('should return data if email.getMailer(user).sendHTML send mail successfully', function() { deps.helpers = { config: { getBaseUrl: function(user, callback) { callback(null, 'http://test:12345'); } } }; deps.email = { getMailer: function() { return { sendHTML: function(message, templateName, content) { resultedJson = { message: message, templateName: templateName, content: content }; return q(); } }; } }; module = require('../../../lib/mail')(dependencies); return module.process(user, digest).then(function() { return expect( JSON.stringify(resultedJson)).to.deep.equal( JSON.stringify(require('../fixtures/expected-digest-job-result.json'))); }); }); }); });