Clean up share link tests (#7372)

* pierremtb/adhoc/clean-up-share-link-tests

* Lint

* WIP labels

* Trigger CI

* Change to skips
This commit is contained in:
Pierre Jacquier
2025-06-06 11:46:55 -04:00
committed by GitHub
parent 231ca0fa35
commit 9b3afccf53

View File

@ -1,45 +1,47 @@
import { expect, test } from '@e2e/playwright/zoo-test' import { expect, test } from '@e2e/playwright/zoo-test'
import type { Page } from '@playwright/test'
async function navigateAndClickOpenInDesktopApp(
page: Page,
codeLength: number
) {
const code = Array(codeLength).fill('0').join('')
const targetURL = `?create-file=true&browser=test&code=${code}&ask-open-desktop=true`
expect(targetURL.length).toEqual(codeLength + 58)
await page.goto(page.url() + targetURL)
expect(page.url()).toContain(targetURL)
const button = page.getByRole('button', { name: 'Open in desktop app' })
await button.click()
}
function getToastError(page: Page) {
return page.getByText('The URL is too long to open in the desktop app')
}
const isWindows =
navigator.platform === 'Windows' || navigator.platform === 'Win32'
test.describe('Share link tests', () => { test.describe('Share link tests', () => {
;[ test(
{ `Open in desktop app with 2000-long code doesn't show error on non-Windows`,
codeLength: 1000, { tag: ['@web', '@macos', '@linux'] },
showsErrorOnWindows: false, async ({ page }) => {
}, test.skip(process.platform === 'win32')
{ const codeLength = 1000
codeLength: 2000, await navigateAndClickOpenInDesktopApp(page, codeLength)
showsErrorOnWindows: true, await expect(getToastError(page)).not.toBeVisible()
}, }
].forEach(({ codeLength, showsErrorOnWindows }) => { )
test(
`Open in desktop app with ${codeLength}-long code ${isWindows && showsErrorOnWindows ? 'shows error' : "doesn't show error"}`,
{ tag: ['@web'] },
async ({ page }) => {
if (process.env.TARGET !== 'web') {
// This test is web-only
// TODO: re-enable on CI as part of a new @web test suite
return
}
const code = Array(codeLength).fill('0').join('') test(
const targetURL = `?create-file=true&browser=test&code=${code}&ask-open-desktop=true` `Open in desktop app with 1000-long code works on Windows but not with 2000`,
expect(targetURL.length).toEqual(codeLength + 58) { tag: ['@web', '@windows'] },
await page.goto(page.url() + targetURL) async ({ page }) => {
expect(page.url()).toContain(targetURL) test.skip(process.platform !== 'win32')
const button = page.getByRole('button', { name: 'Open in desktop app' }) let codeLength = 1000
await button.click() await navigateAndClickOpenInDesktopApp(page, codeLength)
const toastError = page.getByText( await expect(getToastError(page)).not.toBeVisible()
'The URL is too long to open in the desktop app on Windows'
) codeLength = 2000
if (isWindows && showsErrorOnWindows) { await navigateAndClickOpenInDesktopApp(page, codeLength)
await expect(toastError).toBeVisible() await expect(getToastError(page)).toBeVisible()
} else { }
await expect(toastError).not.toBeVisible() )
// TODO: check if we could verify the deep link dialog shows up
}
}
)
})
}) })