diff --git a/ghost/admin/package.json b/ghost/admin/package.json index 94fb99e83c..e0a55f4e0f 100644 --- a/ghost/admin/package.json +++ b/ghost/admin/package.json @@ -1,6 +1,6 @@ { "name": "ghost-admin", - "version": "5.19.2", + "version": "5.19.3", "description": "Ember.js admin client for Ghost", "author": "Ghost Foundation", "homepage": "http://ghost.org", diff --git a/ghost/core/core/server/services/mega/post-email-serializer.js b/ghost/core/core/server/services/mega/post-email-serializer.js index 17d4ea2ebb..a194e340b4 100644 --- a/ghost/core/core/server/services/mega/post-email-serializer.js +++ b/ghost/core/core/server/services/mega/post-email-serializer.js @@ -231,7 +231,7 @@ const PostEmailSerializer = { titleAlignment: newsletter.get('title_alignment'), bodyFontCategory: newsletter.get('body_font_category'), showBadge: newsletter.get('show_badge'), - feedbackEnabled: newsletter.get('feedback_enabled'), + feedbackEnabled: newsletter.get('feedback_enabled') && labs.isSet('audienceFeedback'), footerContent: newsletter.get('footer_content'), showHeaderName: newsletter.get('show_header_name'), accentColor, diff --git a/ghost/core/package.json b/ghost/core/package.json index 020a8b3db6..ffa6047f9b 100644 --- a/ghost/core/package.json +++ b/ghost/core/package.json @@ -1,6 +1,6 @@ { "name": "ghost", - "version": "5.19.2", + "version": "5.19.3", "description": "The professional publishing platform", "author": "Ghost Foundation", "homepage": "https://ghost.org", diff --git a/ghost/core/test/unit/server/services/mega/post-email-serializer.test.js b/ghost/core/test/unit/server/services/mega/post-email-serializer.test.js index 0addc3a945..6feba65f2b 100644 --- a/ghost/core/test/unit/server/services/mega/post-email-serializer.test.js +++ b/ghost/core/test/unit/server/services/mega/post-email-serializer.test.js @@ -385,7 +385,70 @@ describe('Post Email Serializer', function () { assert(!output.html.includes('')); }); - it('should hide/show feedback buttons depending on feedback_enabled flag', async function () { + it('should hide feedback buttons and ignore feedback_enabled if alpha flag disabled', async function () { + sinon.stub(labs, 'isSet').returns(false); + sinon.stub(_PostEmailSerializer, 'serializePostModel').callsFake(async () => { + return { + url: 'https://testpost.com/', + title: 'This is a test', + excerpt: 'This is a test', + authors: 'This is a test', + feature_image_alt: 'This is a test', + feature_image_caption: 'This is a test', + + // eslint-disable-next-line + mobiledoc: JSON.stringify({"version":"0.3.1","atoms":[],"cards":[],"markups":[],"sections":[[1,"p",[[0,[],0,"Free content only"]]]],"ghostVersion":"4.0"}) + }; + }); + const customSettings = { + accent_color: '#000099', + timezone: 'UTC' + }; + + const settingsMock = sinon.stub(settingsCache, 'get'); + settingsMock.callsFake(function (key, options) { + if (customSettings[key]) { + return customSettings[key]; + } + + return settingsMock.wrappedMethod.call(settingsCache, key, options); + }); + const template = { + name: 'My newsletter', + header_image: '', + show_header_icon: true, + show_header_title: true, + show_feature_image: true, + title_font_category: 'sans-serif', + title_alignment: 'center', + body_font_category: 'serif', + show_badge: true, + show_header_name: true, + feedback_enabled: true, + footer_content: 'footer' + }; + const newsletterMock = { + get: function (key) { + return template[key]; + }, + toJSON: function () { + return template; + } + }; + + const output = await serialize({}, newsletterMock, {isBrowserPreview: false}); + assert(!output.html.includes('%{feedback_button_like}%')); + assert(!output.html.includes('%{feedback_button_dislike}%')); + + template.feedback_enabled = true; + + const outputWithButtons = await serialize({}, newsletterMock, {isBrowserPreview: false}); + assert(!outputWithButtons.html.includes('%{feedback_button_like}%')); + assert(!outputWithButtons.html.includes('%{feedback_button_dislike}%')); + }); + + /*it('should hide/show feedback buttons depending on feedback_enabled flag', async function () { + sinon.stub(labs, 'isSet').returns(true); sinon.stub(_PostEmailSerializer, 'serializePostModel').callsFake(async () => { return { url: 'https://testpost.com/', @@ -444,7 +507,7 @@ describe('Post Email Serializer', function () { const outputWithButtons = await serialize({}, newsletterMock, {isBrowserPreview: false}); assert(outputWithButtons.html.includes('%{feedback_button_like}%')); assert(outputWithButtons.html.includes('%{feedback_button_dislike}%')); - }); + });*/ }); describe('renderEmailForSegment', function () {