import { expect, test } from '@e2e/playwright/zoo-test' const isWindows = navigator.platform === 'Windows' || navigator.platform === 'Win32' test.describe('Share link tests', () => { ;[ { codeLength: 1000, showsErrorOnWindows: false, }, { codeLength: 2000, showsErrorOnWindows: true, }, ].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.PLATFORM !== '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('') 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() const toastError = page.getByText( 'The URL is too long to open in the desktop app on Windows' ) if (isWindows && showsErrorOnWindows) { await expect(toastError).toBeVisible() } else { await expect(toastError).not.toBeVisible() // TODO: check if we could verify the deep link dialog shows up } } ) }) })