47e00900cc
no issue - change out should.equal for // jshint ignore:line - ensure should is the first require in every test, and ALWAYS require - make sinon the second require, and sandbox the last thing - ALWAYS use sandbox, futureproofs tests against contributors who don't know it - change require formatting
118 lines
4.6 KiB
JavaScript
118 lines
4.6 KiB
JavaScript
var should = require('should'), // jshint ignore:line
|
|
sinon = require('sinon'),
|
|
mail = require('../../../server/mail'),
|
|
sandbox = sinon.sandbox.create();
|
|
|
|
describe('Mail: Utils', function () {
|
|
var scope = {ghostMailer: null};
|
|
|
|
beforeEach(function () {
|
|
scope.ghostMailer = new mail.GhostMailer();
|
|
|
|
sandbox.stub(scope.ghostMailer.transport, 'sendMail', function (message, sendMailDone) {
|
|
sendMailDone(null, {
|
|
statusHandler: {
|
|
once: function (eventName, eventDone) {
|
|
if (eventName === 'sent') {
|
|
eventDone();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
afterEach(function () {
|
|
sandbox.restore();
|
|
});
|
|
|
|
it('generate welcome', function (done) {
|
|
mail.utils.generateContent({
|
|
template: 'welcome',
|
|
data: {
|
|
ownerEmail: 'test@example.com'
|
|
}
|
|
}).then(function (result) {
|
|
return scope.ghostMailer.send({
|
|
to: 'test@example.com',
|
|
subject: 'lol',
|
|
html: result.html,
|
|
text: result.text
|
|
});
|
|
}).then(function () {
|
|
done();
|
|
}).catch(done);
|
|
});
|
|
|
|
it('generates newsletter template', function (done) {
|
|
mail.utils.generateContent({
|
|
template: 'newsletter',
|
|
data: {
|
|
blog: {
|
|
logo: 'http://myblog.com/content/images/blog-logo.jpg',
|
|
title: 'The Ghost Blog',
|
|
url: 'http://myblog.com',
|
|
twitterUrl: 'http://twitter.com/tryghost',
|
|
facebookUrl: 'https://www.facebook.com/ghost',
|
|
unsubscribe: 'http://myblog.com/unsubscribe',
|
|
post: [
|
|
{
|
|
picture: 'http://myblog.com/content/images/post-1-image.jpg',
|
|
title: 'Featured blog post',
|
|
text: 'This is a featured blog post. It’s awesome…',
|
|
url: 'http://myblog.com/featured-blog-post',
|
|
tag: 'featured',
|
|
author: 'harry potter'
|
|
},
|
|
{
|
|
picture: 'http://myblog.com/content/images/post-2-image.jpg',
|
|
title: 'Second blog post',
|
|
text: 'This is the second blog post. It’s also awesome…',
|
|
url: 'http://myblog.com/second-blog-post',
|
|
tag: 'second',
|
|
author: 'lord voldemord'
|
|
},
|
|
{
|
|
picture: 'http://myblog.com/content/images/post-3-image.jpg',
|
|
title: 'Third blog post',
|
|
text: 'This is the third blog post. It’s also awesome…',
|
|
url: 'http://myblog.com/third-blog-post',
|
|
tag: 'third',
|
|
author: 'marry poppins'
|
|
},
|
|
{
|
|
picture: 'http://myblog.com/content/images/post-4-image.jpg',
|
|
title: 'Fourth blog post',
|
|
text: 'This is the fourth blog post. It’s also awesome…',
|
|
url: 'http://myblog.com/fourth-blog-post',
|
|
tag: 'fourth',
|
|
author: 'donald duck'
|
|
},
|
|
{
|
|
picture: 'http://myblog.com/content/images/post-5-image.jpg',
|
|
title: 'Fifth blog post',
|
|
text: 'This is the fifth blog post. It’s also awesome…',
|
|
url: 'http://myblog.com/fifth-blog-post',
|
|
tag: 'fifth',
|
|
author: 'casper the ghost'
|
|
}
|
|
]
|
|
},
|
|
newsletter: {
|
|
interval: 'monthly',
|
|
date: 'june, 9th 2016'
|
|
}
|
|
}
|
|
}).then(function (result) {
|
|
return scope.ghostMailer.send({
|
|
to: 'jbloggs@example.com',
|
|
subject: 'The Newsletter Blog',
|
|
html: result.html,
|
|
text: result.text
|
|
});
|
|
}).then(function () {
|
|
done();
|
|
}).catch(done);
|
|
});
|
|
});
|