Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
cae91b0
refactor: extract mocking E2Es
goosewobbler Jan 1, 2026
056d762
feat: deeplink testing
goosewobbler Jan 2, 2026
a0041d4
fix: address behaviour for units
goosewobbler Jan 2, 2026
54ce1d3
test: fix units
goosewobbler Jan 2, 2026
6b6aeed
chore: add logging
goosewobbler Jan 2, 2026
b164063
fix: wait for contextId before disabling runtime
goosewobbler Jan 2, 2026
89a11f2
chore: add debug
goosewobbler Jan 2, 2026
0eaa14c
fix: wait for contextId before sending Runtime.disable
goosewobbler Jan 2, 2026
ecfed6f
chore: add debug
goosewobbler Jan 2, 2026
804c14c
fix: mocking implementation
goosewobbler Jan 2, 2026
6c903aa
test: update unit expectation
goosewobbler Jan 2, 2026
975b677
fix: double-encoding on mac
goosewobbler Jan 2, 2026
61a9aa5
chore: register protocol handlers on Linux / Windows
goosewobbler Jan 2, 2026
4478da3
chore: add debug
goosewobbler Jan 2, 2026
78ef559
fix: autodetect userdata dir from running app, append
goosewobbler Jan 2, 2026
2d50861
test: fix unit
goosewobbler Jan 2, 2026
45659ae
fix: windows url fixes
goosewobbler Jan 2, 2026
854cc01
test: update units for url formatting
goosewobbler Jan 3, 2026
9c5855e
feat: expand protocol handling to forge app
goosewobbler Jan 3, 2026
dce62e7
fix: ensure windows uses window title
goosewobbler Jan 3, 2026
fa7154d
test: don't verify logging in units, reset module state after unmock
goosewobbler Jan 3, 2026
0ec2baa
test: rework cleanup
goosewobbler Jan 3, 2026
44d02fd
test: rework native-utils mock
goosewobbler Jan 5, 2026
bb313ac
chore: update to node 24
goosewobbler Jan 5, 2026
e9d87ca
chore: add comments
goosewobbler Jan 5, 2026
976fa27
chore: update pnpm
goosewobbler Jan 5, 2026
4c169e0
docs: simplify and add deeplink docs
goosewobbler Jan 5, 2026
f048597
test: fix type errors
goosewobbler Jan 5, 2026
07672ed
Merge branch 'feat/deeplink-testing' of https://github.com/webdriveri…
goosewobbler Jan 5, 2026
fc70c6e
test: remove unused import
goosewobbler Jan 5, 2026
b882b24
test: fix windows file handle issue
goosewobbler Jan 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions .github/workflows/_ci-e2e.reusable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,81 @@ jobs:
shell: bash
run: pnpm exec turbo run ${{ inputs.build-command }} ${{ steps.gen-build.outputs.result }} --only --parallel

# Setup protocol handlers for deeplink testing
# Required for Windows and Linux to properly handle testapp:// protocol
- name: 🔗 Setup Protocol Handlers
if: contains(inputs.scenario, 'builder') || contains(inputs.scenario, 'forge')
shell: bash
run: |
echo "=== Protocol Handler Setup ==="
echo "Runner OS: $RUNNER_OS"
echo "Working directory: $(pwd)"
echo "Scenario: ${{ inputs.scenario }}"
echo ""

# Determine which app(s) to set up based on scenario
APPS=()
if [[ "${{ inputs.scenario }}" == *"builder"* ]]; then
APPS+=("electron-builder")
fi
if [[ "${{ inputs.scenario }}" == *"forge"* ]]; then
APPS+=("electron-forge")
fi

for APP in "${APPS[@]}"; do
echo "Setting up protocol handler for: $APP"

if [ "$RUNNER_OS" == "Windows" ]; then
echo "Setting up Windows protocol handler..."

if [ "$APP" == "electron-builder" ]; then
echo "Checking if dist directory exists..."
ls -la ./fixtures/e2e-apps/$APP/dist/ || echo "dist/ not found"
else
echo "Checking if out directory exists..."
ls -la ./fixtures/e2e-apps/$APP/out/ || echo "out/ not found"
fi
echo ""

powershell -ExecutionPolicy Bypass -File ./fixtures/e2e-apps/$APP/scripts/setup-protocol-handler.ps1
EXIT_CODE=$?

if [ $EXIT_CODE -ne 0 ]; then
echo "Error: Protocol handler setup failed for $APP with exit code $EXIT_CODE"
exit 1
fi

elif [ "$RUNNER_OS" == "Linux" ]; then
echo "Setting up Linux protocol handler..."

if [ "$APP" == "electron-builder" ]; then
echo "Checking if dist directory exists..."
ls -la ./fixtures/e2e-apps/$APP/dist/ || echo "dist/ not found"
else
echo "Checking if out directory exists..."
ls -la ./fixtures/e2e-apps/$APP/out/ || echo "out/ not found"
fi
echo ""

chmod +x ./fixtures/e2e-apps/$APP/scripts/setup-protocol-handler.sh
./fixtures/e2e-apps/$APP/scripts/setup-protocol-handler.sh
EXIT_CODE=$?

if [ $EXIT_CODE -ne 0 ]; then
echo "Error: Protocol handler setup failed for $APP with exit code $EXIT_CODE"
exit 1
fi

else
echo "macOS: Protocol handlers are registered by the app itself via setAsDefaultProtocolClient"
echo "No external setup needed - the app registers on first launch"
fi

echo ""
done

echo "=== Protocol Handler Setup Complete ==="

# Dynamically generate the test commands to run
# This handles both single and multiple scenarios
- name: 🪄 Generate Test Execution Plan
Expand Down
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v22.19.0
v24
Loading
Loading