diff --git a/app/test/e2e/helpers/shared-flows.ts b/app/test/e2e/helpers/shared-flows.ts index 16d0348be..2b54b840b 100644 --- a/app/test/e2e/helpers/shared-flows.ts +++ b/app/test/e2e/helpers/shared-flows.ts @@ -248,7 +248,8 @@ export async function navigateToConversations() { } // --------------------------------------------------------------------------- -// Onboarding walkthrough (Onboarding.tsx — 5 steps, indices 0–4) +// Onboarding walkthrough +// Current flow: Welcome → Local AI → Screen & Accessibility → Tools → Skills (5 steps, indices 0–4). // --------------------------------------------------------------------------- /** Labels used to detect the onboarding overlay (same strings as Onboarding copy). */ @@ -319,12 +320,14 @@ export async function walkOnboarding(logPrefix = '[E2E]') { } /** - * If onboarding is showing, walk through it. Safe no-op when already on Home / no overlay. + * Walk through onboarding if it is visible, or no-op if already on Home. + * + * Delegates to walkOnboarding, which polls up to 8 × 400 ms for the overlay + * to appear before giving up — safe to call unconditionally after auth so + * timing races do not cause the helper to skip onboarding prematurely. */ export async function completeOnboardingIfVisible(logPrefix = '[E2E]') { - if (await onboardingOverlayLikelyVisible()) { - await walkOnboarding(logPrefix); - } + await walkOnboarding(logPrefix); } // --------------------------------------------------------------------------- diff --git a/app/test/e2e/specs/conversations-web-channel-flow.spec.ts b/app/test/e2e/specs/conversations-web-channel-flow.spec.ts index df336fa46..2768501a9 100644 --- a/app/test/e2e/specs/conversations-web-channel-flow.spec.ts +++ b/app/test/e2e/specs/conversations-web-channel-flow.spec.ts @@ -9,7 +9,11 @@ import { waitForWebView, waitForWindowVisible, } from '../helpers/element-helpers'; -import { navigateToConversations, navigateViaHash, walkOnboarding } from '../helpers/shared-flows'; +import { + completeOnboardingIfVisible, + navigateToConversations, + navigateViaHash, +} from '../helpers/shared-flows'; import { clearRequestLog, getRequestLog, startMockServer, stopMockServer } from '../mock-server'; function stepLog(message: string, context?: unknown) { @@ -70,7 +74,7 @@ suiteRunner('Conversations web channel flow', () => { } stepLog('complete onboarding'); - await walkOnboarding('[ConversationsE2E]'); + await completeOnboardingIfVisible('[ConversationsE2E]'); stepLog('open conversations'); // Navigate via hash — "Message OpenHuman" button may not reliably open conversations diff --git a/e2e/Dockerfile b/e2e/Dockerfile index d5128775c..74a0eb346 100644 --- a/e2e/Dockerfile +++ b/e2e/Dockerfile @@ -21,6 +21,7 @@ RUN apt-get update && apt-get install -y \ libgtk-3-dev libwebkit2gtk-4.1-dev libappindicator3-dev \ librsvg2-dev patchelf libssl-dev \ xvfb at-spi2-core dbus-x11 webkit2gtk-driver \ + clang libclang-dev cmake \ git ca-certificates \ && rm -rf /var/lib/apt/lists/*