Files
openhuman/e2e/Dockerfile
T
898fe13477 Feat: update complete onboarding helper (#299)
* fix(e2e): make completeOnboardingIfVisible resilient by delegating to walkOnboarding

The previous implementation did a single onboardingOverlayLikelyVisible()
check before calling walkOnboarding. This created a timing race: if onboarding
had not yet rendered at call time the helper returned early, leaving the
overlay blocking subsequent steps.

walkOnboarding already handles both cases correctly — it polls up to
8 × 400 ms for the overlay before giving up, then no-ops gracefully if not
visible. completeOnboardingIfVisible now delegates to it unconditionally,
eliminating the race without changing observable behaviour.

Also updates the section comment to accurately describe the current 5-step
onboarding sequence (Welcome → Local AI → Screen & Accessibility → Tools →
Skills) following the removal of MnemonicStep in #279.

Closes part of #201

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(e2e): use completeOnboardingIfVisible in conversations spec

conversations-web-channel-flow.spec.ts was the only spec that called
walkOnboarding directly instead of the shared completeOnboardingIfVisible
helper. Align it with all other specs so the single resilient code path
is used consistently.

Closes #201

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(e2e): add clang and cmake to Dockerfile dependencies

Updated the e2e Dockerfile to include clang and cmake as additional dependencies, enhancing the build environment for end-to-end testing.

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 16:07:25 +05:30

49 lines
1.4 KiB
Docker

##
# Linux E2E environment for OpenHuman desktop app.
#
# Mirrors the ubuntu-22.04 CI runner so macOS developers can run the
# same Linux-based E2E stack locally via Docker.
#
# Usage:
# docker compose -f e2e/docker-compose.yml run --rm e2e
#
# Or manually:
# docker build -t openhuman-e2e -f e2e/Dockerfile .
# docker run --rm -v "$(pwd):/app" openhuman-e2e yarn workspace openhuman-app test:e2e:all
#
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
# System dependencies for Tauri + webkit2gtk
RUN apt-get update && apt-get install -y \
bash curl build-essential pkg-config \
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/*
# Rust 1.93.0
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \
sh -s -- -y --default-toolchain 1.93.0
ENV PATH="/root/.cargo/bin:${PATH}"
# Node.js 24.x + Yarn
RUN curl -fsSL https://deb.nodesource.com/setup_24.x | bash - && \
apt-get install -y nodejs && \
npm install -g yarn && \
rm -rf /var/lib/apt/lists/*
# tauri-driver (WebDriver server for Tauri apps)
RUN cargo install tauri-driver --version 2.0.5
WORKDIR /app
COPY e2e/docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["yarn", "workspace", "openhuman-app", "test:e2e:all"]