2023-06-21 11:56:59 +03:00
const assert = require ( 'assert/strict' ) ;
2022-05-04 10:08:35 +03:00
const path = require ( 'path' ) ;
2021-10-06 13:12:21 +03:00
2022-05-04 11:42:36 +03:00
const EmailContentGenerator = require ( '../index' ) ;
2021-10-06 13:12:21 +03:00
2022-05-04 10:08:35 +03:00
describe ( 'Mail: EmailContentGenerator' , function ( ) {
it ( 'generate welcome' , async function ( ) {
const emailContentGenerator = new EmailContentGenerator ( {
getSiteTitle : ( ) => 'The Ghost Blog' ,
getSiteUrl : ( ) => 'http://myblog.com' ,
2022-05-04 11:42:36 +03:00
templatesDir : path . resolve ( _ _dirname , './fixtures/templates/' )
2022-05-04 10:08:35 +03:00
} ) ;
2021-10-06 13:12:21 +03:00
2022-05-04 10:08:35 +03:00
const content = await emailContentGenerator . getContent ( {
2021-10-06 13:12:21 +03:00
template : 'welcome' ,
data : {
ownerEmail : 'test@example.com'
}
2022-05-04 10:08:35 +03:00
} ) ;
assert . match ( content . html , /<title>Welcome to Ghost<\/title>/ ) ;
assert . match ( content . html , /This email was sent from <a href="http:\/\/myblog.com" style="color: #738A94;">http:\/\/myblog.com<\/a> to <a href="mailto:test@example.com" style="color: #738A94;">test@example.com<\/a><\/p>/ ) ;
assert . match ( content . text , /Email Address: test@example.com \[test@example.com\]/ ) ;
assert . match ( content . text , /This email was sent from http:\/\/myblog.com/ ) ;
2021-10-06 13:12:21 +03:00
} ) ;
2022-05-04 10:08:35 +03:00
it ( 'generates newsletter template' , async function ( ) {
const emailContentGenerator = new EmailContentGenerator ( {
getSiteTitle : ( ) => 'The Ghost Blog' ,
getSiteUrl : ( ) => 'http://myblog.com' ,
2022-05-04 11:42:36 +03:00
templatesDir : path . resolve ( _ _dirname , './fixtures/templates/' )
2022-05-04 10:08:35 +03:00
} ) ;
const content = await emailContentGenerator . getContent ( {
2021-10-06 13:12:21 +03:00
template : 'newsletter' ,
data : {
blog : {
logo : 'http://myblog.com/content/images/blog-logo.jpg' ,
title : 'The Ghost Blog' ,
url : 'http://myblog.com' ,
twitter : 'http://twitter.com/ghost' ,
facebook : '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'
}
}
2022-05-04 10:08:35 +03:00
} ) ;
assert . match ( content . html , /<title>The Ghost Blog<\/title>/ ) ;
assert . match ( content . html , /<span style="text-transform:capitalize">monthly<\/span> digest/ ) ;
assert . match ( content . html , /<span style="text-transform:capitalize">june, 9th 2016<\/span><\/h3>/ ) ;
assert . match ( content . text , /MONTHLY DIGEST — JUNE, 9TH 2016/ ) ;
assert . match ( content . text , /SECOND BLOG POST \[HTTP:\/\/MYBLOG.COM\/SECOND-BLOG-POST\]/ ) ;
2021-10-06 13:12:21 +03:00
} ) ;
} ) ;