Add E2E tests#334
Closed
gabrieldonadel wants to merge 4 commits into
Closed
Conversation
11e76e3 to
699d71d
Compare
Closed
b85429f to
fbb7753
Compare
3f4ef59 to
04a2245
Compare
23a0235 to
fd14433
Compare
WebdriverIO-based E2E setup that runs against both the Electron build (via Chromedriver) and the macOS native build (via Appium mac2). Shared spec files drive both platforms; a sanitizing testID -> AX-id mapping in helpers.ts lets the same selectors find elements through either driver. Adds the testID props the specs depend on across the popover, device-list, and onboarding components. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@electron-forge/plugin-vite ships only the .vite/build/ output into the
asar, no node_modules. The wdio IPC-bridge hook needs to be reachable
at runtime, so:
- Vite traces a dynamic import('./wdio-hook') in main.ts and a static
import in preload.ts. The shim files re-export 'wdio-electron-service/
{main,preload}', so Vite pulls those into the bundle/chunk graph
instead of leaving them as runtime requires that would fail to
resolve.
- A define-driven `process.env.WDIO_E2E` gate keeps the main-process
hook dead-coded out of production builds; the preload-side bridge is
always exposed (it's a no-op without the main-side handler).
- packagerConfig.ignore strips wdio-electron-service from the asar in
production for tidiness.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Three startup paths trigger TCC permission prompts (Local Network, Screen Recording) or modal sheets that CI runners can't dismiss non-interactively, blocking the desktop for the whole test session: - SwifterWrapper's HTTP server binds to non-loopback ports. - SPUStandardUpdaterController fails on unsigned bundles and pops the "Unable to Check For Updates" sheet. - RSClient.configure spins up reachability monitoring that trips the local-network prompt. Each is now skipped when EXPO_ORBIT_E2E=1 (set via appium:environment in wdio.macos.ts). Also gates the CLI codesign step in archive_cli.sh on CODE_SIGNING_ALLOWED so the unsigned E2E build doesn't fail at the Xcode 'Archive and sign CLI' script phase. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
GitHub Actions workflow that runs the E2E specs on all three platforms. Each job builds the platform's binary, creates an Android AVD via sdkmanager/avdmanager (not booted — orbit-cli uses `emulator -list-avds` which reads from disk, so the device appears in Orbit without nested-virt setup), runs wdio, and uploads screenshots + AX-tree dumps as artifacts (if: always()). Linux uses xvfb-run + a handful of apt-get'd runtime libs that ubuntu-latest lacks. macOS pins Xcode 26.2 and builds unsigned so the runner doesn't need a Developer ID cert. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0df3618 to
19d264a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.