diff --git a/e2e/playwright/test-utils.ts b/e2e/playwright/test-utils.ts index 92f6736914..6583fc026c 100644 --- a/e2e/playwright/test-utils.ts +++ b/e2e/playwright/test-utils.ts @@ -246,14 +246,17 @@ export const getMovementUtils = (opts: any) => { } async function waitForAuthAndLsp(page: Page) { - const waitForLspPromise = page.waitForEvent('console', async (message) => { - // it would be better to wait for a message that the kcl lsp has started by looking for the message message.text().includes('[lsp] [window/logMessage]') - // but that doesn't seem to make it to the console for macos/safari :( - if (message.text().includes('start kcl lsp')) { - await new Promise((resolve) => setTimeout(resolve, 200)) - return true - } - return false + const waitForLspPromise = page.waitForEvent('console', { + predicate: async (message) => { + // it would be better to wait for a message that the kcl lsp has started by looking for the message message.text().includes('[lsp] [window/logMessage]') + // but that doesn't seem to make it to the console for macos/safari :( + if (message.text().includes('start kcl lsp')) { + await new Promise((resolve) => setTimeout(resolve, 200)) + return true + } + return false + }, + timeout: 45_000, }) if (process.env.CI) { await waitForPageLoadWithRetry(page) diff --git a/playwright.config.ts b/playwright.config.ts index 1a4d01290b..27e49efbed 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -32,6 +32,8 @@ export default defineConfig({ /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ trace: 'retain-on-failure', + actionTimeout: 15000, + screenshot: 'only-on-failure', }, /* Configure projects for major browsers */