diff --git a/e2e/progress-bar.spec.ts b/e2e/progress-bar.spec.ts index 05aeebc1572..28ce001bf82 100644 --- a/e2e/progress-bar.spec.ts +++ b/e2e/progress-bar.spec.ts @@ -1,4 +1,5 @@ -import { test, expect, type Page } from '@playwright/test'; +import { expect, test, type Page } from '@playwright/test'; +import translations from '../client/i18n/locales/english/translations.json'; let page: Page; @@ -10,9 +11,22 @@ test.beforeAll(async ({ browser }) => { }); test.describe('Progress bar component', () => { - test('Should appear with the correct content after the user has submitted their code', async () => { + test('Should appear with the correct content after the user has submitted their code', async ({ + isMobile, + browserName + }) => { const monacoEditor = page.getByLabel('Editor content'); - await monacoEditor.click(); + + // The editor has an overlay div, which prevents the click event from bubbling up in iOS Safari. + // This is a quirk in this browser-OS combination, and the workaround here is to use `.focus()` + // in place of `.click()` to focus on the editor. + // Ref: https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html + if (isMobile && browserName === 'webkit') { + await monacoEditor.focus(); + } else { + await monacoEditor.click(); + } + await page.keyboard.press('Control+A'); //Meta + A works in webkit await page.keyboard.press('Meta+A'); @@ -21,9 +35,16 @@ test.describe('Progress bar component', () => { await page.keyboard.insertText( '