From 52020ef2dfa4bc7b1e34fd5806df754c7c351047 Mon Sep 17 00:00:00 2001 From: Hannah Wolfe Date: Thu, 19 Dec 2024 15:52:10 +0000 Subject: [PATCH 1/3] Removed i18n toggle from labs UI (#21927) ref bb9a69e ref https://linear.app/ghost/issue/ENG-1753/labs-flags-cleanup - We promoted i18n to GA several weeks ago now, and it's going fine - Removing the UI first to reduce confusion before cleaning up all the other references to the flag - Also changed the i18n test to set the language back at the end of the test, to ensure no conflicts --- .../settings/advanced/labs/BetaFeatures.tsx | 4 --- .../core/test/e2e-browser/admin/i18n.spec.js | 25 ++++++++----------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/apps/admin-x-settings/src/components/settings/advanced/labs/BetaFeatures.tsx b/apps/admin-x-settings/src/components/settings/advanced/labs/BetaFeatures.tsx index 97daa8bb2c8..37ecb00ff40 100644 --- a/apps/admin-x-settings/src/components/settings/advanced/labs/BetaFeatures.tsx +++ b/apps/admin-x-settings/src/components/settings/advanced/labs/BetaFeatures.tsx @@ -23,10 +23,6 @@ const BetaFeatures: React.FC = () => { action={} detail={<>Enable support for CashApp, iDEAL, Bancontact, and others. Learn more →} title='Additional payment methods' /> - } - detail={<>Translate your membership flows into your publication language (supported languages). Don’t see yours? Get involved} - title='Portal translation' /> { test.describe('Newsletter', () => { test('changing the site language immediately translates strings in newsletters', async ({sharedPage}) => { - await sharedPage.goto('/ghost/#/settings/publication-language'); - const section = sharedPage.getByTestId('publication-language'); - const input = section.getByPlaceholder('Site language'); - await input.fill('fr'); - await section.getByRole('button', {name: 'Save'}).click(); - - const labsSection = sharedPage.getByTestId('labs'); - await labsSection.getByRole('button', {name: 'Open'}).click(); - let portalLabel = labsSection.getByText('Portal translation'); - let portalToggle = portalLabel.locator('..').locator('..').locator('..').getByRole('switch'); - await portalToggle.click(); + await setLanguage(sharedPage, 'fr'); const postData = { title: 'Publish and email post', @@ -40,6 +34,9 @@ test.describe('i18n', () => { const metaText = await sharedPage.frameLocator('iframe.gh-pe-iframe').locator('td.post-meta').first().textContent(); expect(metaText).toContain('Par Joe Bloggs'); expect(metaText).not.toContain('By Joe Bloggs'); + + // Set the language back before the next test! + await setLanguage(sharedPage, 'en'); }); }); }); From a506838deef85245c0f7f72cb07191c7e0747f7c Mon Sep 17 00:00:00 2001 From: Hannah Wolfe Date: Mon, 20 Jan 2025 12:24:58 +0000 Subject: [PATCH 2/3] WIP --- .../core/test/e2e-browser/admin/i18n.spec.js | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/ghost/core/test/e2e-browser/admin/i18n.spec.js b/ghost/core/test/e2e-browser/admin/i18n.spec.js index 0ceadf843e9..09cf5a944eb 100644 --- a/ghost/core/test/e2e-browser/admin/i18n.spec.js +++ b/ghost/core/test/e2e-browser/admin/i18n.spec.js @@ -2,12 +2,24 @@ const {expect} = require('@playwright/test'); const test = require('../fixtures/ghost-test'); const {createPostDraft} = require('../utils'); +// const section = page.getByTestId('publication-language'); + +// await expect(section.getByText('en')).toHaveCount(1); + +// await section.getByLabel('Site language').fill('jp'); + +// await section.getByRole('button', {name: 'Save'}).click(); + +// await expect(section.getByLabel('Site language')).toHaveValue('jp'); + async function setLanguage(sharedPage, language) { await sharedPage.goto('/ghost/#/settings/publication-language'); const section = sharedPage.getByTestId('publication-language'); - const input = section.getByPlaceholder('Site language'); - await input.fill(language); + await expect(section.getByText('en')).toHaveCount(1); + await section.getByLabel('Site language').fill(language); await section.getByRole('button', {name: 'Save'}).click(); + + await expect(section.getByLabel('Site language')).toHaveValue(language); } test.describe('i18n', () => { @@ -29,14 +41,13 @@ test.describe('i18n', () => { await sharedPage.waitForSelector('[data-test-button="email-preview"]'); await sharedPage.locator('[data-test-button="email-preview"]').first().click(); - await sharedPage.waitForTimeout(1000); - const metaText = await sharedPage.frameLocator('iframe.gh-pe-iframe').locator('td.post-meta').first().textContent(); - expect(metaText).toContain('Par Joe Bloggs'); - expect(metaText).not.toContain('By Joe Bloggs'); + + await expect(metaText).toContain('Par Joe Bloggs'); + await expect(metaText).not.toContain('By Joe Bloggs'); // Set the language back before the next test! - await setLanguage(sharedPage, 'en'); + // await setLanguage(sharedPage, 'en'); }); }); }); From d4dd38beff14039f6b7fdea7a469e73b65e271b5 Mon Sep 17 00:00:00 2001 From: Hannah Wolfe Date: Mon, 20 Jan 2025 12:42:51 +0000 Subject: [PATCH 3/3] cleanup --- ghost/core/test/e2e-browser/admin/i18n.spec.js | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/ghost/core/test/e2e-browser/admin/i18n.spec.js b/ghost/core/test/e2e-browser/admin/i18n.spec.js index 09cf5a944eb..9a1df7048dd 100644 --- a/ghost/core/test/e2e-browser/admin/i18n.spec.js +++ b/ghost/core/test/e2e-browser/admin/i18n.spec.js @@ -2,16 +2,6 @@ const {expect} = require('@playwright/test'); const test = require('../fixtures/ghost-test'); const {createPostDraft} = require('../utils'); -// const section = page.getByTestId('publication-language'); - -// await expect(section.getByText('en')).toHaveCount(1); - -// await section.getByLabel('Site language').fill('jp'); - -// await section.getByRole('button', {name: 'Save'}).click(); - -// await expect(section.getByLabel('Site language')).toHaveValue('jp'); - async function setLanguage(sharedPage, language) { await sharedPage.goto('/ghost/#/settings/publication-language'); const section = sharedPage.getByTestId('publication-language'); @@ -45,9 +35,6 @@ test.describe('i18n', () => { await expect(metaText).toContain('Par Joe Bloggs'); await expect(metaText).not.toContain('By Joe Bloggs'); - - // Set the language back before the next test! - // await setLanguage(sharedPage, 'en'); }); }); });