0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-03-11 02:12:21 -05:00

🐛 Fixed link to posts on audio cards in emails

refs https://ghost.slack.com/archives/CTH5NDJMS/p1675356984043299

The url property doesn't exists on post, this was copied from the old MEGA flow that serialized the model first.
This commit is contained in:
Simon Backx 2023-02-02 18:12:46 +01:00
parent 509affb1f7
commit 0f08f39a1b
2 changed files with 12 additions and 8 deletions

View file

@ -176,14 +176,15 @@ class EmailRenderer {
} }
renderPostBaseHtml(post) { renderPostBaseHtml(post) {
const postUrl = this.#getPostUrl(post);
let html; let html;
if (post.get('lexical')) { if (post.get('lexical')) {
html = this.#renderers.lexical.render( html = this.#renderers.lexical.render(
post.get('lexical'), {target: 'email', postUrl: post.url} post.get('lexical'), {target: 'email', postUrl}
); );
} else { } else {
html = this.#renderers.mobiledoc.render( html = this.#renderers.mobiledoc.render(
JSON.parse(post.get('mobiledoc')), {target: 'email', postUrl: post.url} JSON.parse(post.get('mobiledoc')), {target: 'email', postUrl}
); );
} }
return html; return html;

View file

@ -260,12 +260,14 @@ describe('Email renderer', function () {
return '<p> Mobiledoc Test</p>'; return '<p> Mobiledoc Test</p>';
} }
} }
},
getPostUrl: () => {
return 'http://example.com/post-id';
} }
}); });
it('returns correct empty segment for post', function () { it('returns correct empty segment for post', function () {
let post = { let post = {
url: '',
get: (key) => { get: (key) => {
if (key === 'lexical') { if (key === 'lexical') {
return '{}'; return '{}';
@ -276,7 +278,6 @@ describe('Email renderer', function () {
response.should.eql([null]); response.should.eql([null]);
post = { post = {
url: '',
get: (key) => { get: (key) => {
if (key === 'mobiledoc') { if (key === 'mobiledoc') {
return '{}'; return '{}';
@ -295,11 +296,13 @@ describe('Email renderer', function () {
return '<p> Lexical Test <!--members-only--> members only section</p>'; return '<p> Lexical Test <!--members-only--> members only section</p>';
} }
} }
},
getPostUrl: () => {
return 'http://example.com/post-id';
} }
}); });
let post = { let post = {
url: '',
get: (key) => { get: (key) => {
if (key === 'lexical') { if (key === 'lexical') {
return '{}'; return '{}';
@ -318,11 +321,13 @@ describe('Email renderer', function () {
return '<html> <div> Lexical Test </div> <div data-gh-segment="status:-free"> members only section</div> </html>'; return '<html> <div> Lexical Test </div> <div data-gh-segment="status:-free"> members only section</div> </html>';
} }
} }
},
getPostUrl: () => {
return 'http://example.com/post-id';
} }
}); });
let post = { let post = {
url: '',
get: (key) => { get: (key) => {
if (key === 'lexical') { if (key === 'lexical') {
return '{}'; return '{}';
@ -407,7 +412,6 @@ describe('Email renderer', function () {
beforeEach(function () { beforeEach(function () {
basePost = { basePost = {
url: '',
lexical: '{}', lexical: '{}',
visibility: 'public', visibility: 'public',
title: 'Test Post', title: 'Test Post',
@ -693,7 +697,6 @@ describe('Email renderer', function () {
it('removes data-gh-segment and renders paywall', async function () { it('removes data-gh-segment and renders paywall', async function () {
renderedPost = '<div> Lexical Test </div> <div data-gh-segment="status:-free"> members only section</div> some text for both <!--members-only--> finishing part only for members'; renderedPost = '<div> Lexical Test </div> <div data-gh-segment="status:-free"> members only section</div> some text for both <!--members-only--> finishing part only for members';
let post = { let post = {
url: '',
related: () => { related: () => {
return null; return null;
}, },