Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
69a7976
chore(repo): add the integration/expo-native package and its unit tes…
mikepitre Oct 14, 2026
37926fc
test(expo): add the shared core of the e2e package, copied from clerk…
mikepitre Oct 14, 2026
45b947b
test(expo): add the e2e tests of seven features of @clerk/expo
mikepitre Oct 14, 2026
4ba5d50
Merge branch 'mike/expo-verify-r1-fixture' into mike/expo-verify-r2-s…
mikepitre Oct 14, 2026
777527f
ci(expo): watch only what the Expo Native Runner Tests read
mikepitre Oct 14, 2026
09a9a2c
Merge branch 'mike/expo-verify-r1-fixture' into mike/expo-verify-r2-s…
mikepitre Oct 14, 2026
9291b79
Revert "ci(expo): watch only what the Expo Native Runner Tests read"
mikepitre Oct 14, 2026
07bfdeb
Merge branch 'tmp-r1-fixture' into tmp-r2-shared-core
mikepitre Oct 14, 2026
40e59a7
fix(expo): pair each missing before screenshot with the failure of it…
mikepitre Oct 15, 2026
6995567
fix(expo): name the test attach looked for when a before screenshot i…
mikepitre Oct 15, 2026
749d850
fix(expo): pair a before failure screenshot by full spec path
mikepitre Oct 15, 2026
5e0e43c
fix(expo): wait out the iOS frame lag after host.fill types
mikepitre Oct 15, 2026
116a3d0
feat(expo): post only the marked part of a run's video, paced for a r…
mikepitre Oct 15, 2026
f401420
fix(expo): seal a run whose evidence marks hold a half-written line
mikepitre Oct 15, 2026
23d1559
fix(expo): drop the engine settle that never paced a spec
mikepitre Oct 15, 2026
0580238
fix(expo): suggest a video after a run only when it marked the change
mikepitre Oct 15, 2026
826f96a
test(expo): copy organization seeding into the shared e2e core
mikepitre Oct 15, 2026
288a77e
test(expo): count only selected tests and refuse permission keys for …
mikepitre Oct 15, 2026
3eb54ad
test(expo): draw each tap in the posted evidence video
mikepitre Oct 15, 2026
6bb4ec4
fix(expo): mark the landed tap, bound the screen read, keep end taps
mikepitre Oct 15, 2026
2b10c7f
fix(expo): start each tap's pulse 0.2 s before the control changes
mikepitre Oct 15, 2026
4cc5122
fix(expo): skip an older writer record, answer a remote recording sta…
mikepitre Oct 15, 2026
35397c4
fix(expo): refuse a recording start when the recorder exits first
mikepitre Oct 15, 2026
69bb134
Merge branch 'mike/expo-verify-r1-fixture' into mike/expo-verify-r2-s…
mikepitre Oct 15, 2026
2726651
ci(expo): pin the runner-tests job's actions by version tag
mikepitre Oct 15, 2026
26c41a1
Reject zero-height viewports and stop reading the recorder once it st…
mikepitre Oct 15, 2026
da5028c
test(expo): run the Android lanes with animations on
mikepitre Oct 15, 2026
51257f6
test(expo): add a per-run registry of short names
mikepitre Oct 15, 2026
4efe39f
test(expo): type short, readable names and passwords
mikepitre Oct 15, 2026
c7c7086
fix(expo): keep tap pulses ahead of the change on remote iOS and in e…
mikepitre Oct 15, 2026
0f8260e
fix(expo): take no change from before a tap was sent as its reaction
mikepitre Oct 15, 2026
00e00fa
Merge branch 'mike/expo-verify-r2-shared-core' into the readable test…
mikepitre Oct 15, 2026
12414c0
Merge branch 'mike/expo-verify-r2-shared-core' into the readable test…
mikepitre Oct 15, 2026
fdf85d5
test(expo): pick password words with randomInt
mikepitre Oct 15, 2026
e3d9b4b
test(expo): check through evidenceTapsOf that a change just before a …
mikepitre Oct 15, 2026
b60eb08
test(expo): give each run of a worktree its own tag
mikepitre Oct 15, 2026
5fbd12f
test(expo): end every generated password with four digits
mikepitre Oct 15, 2026
608abd5
test(expo): accept a recorder start answer a few milliseconds short o…
mikepitre Oct 15, 2026
6538e4d
test(e2e): claim each run tag atomically and stop at an exhausted tag…
mikepitre Oct 15, 2026
cd75163
test(e2e): count claimed tags as kept when a run draws its tag
mikepitre Oct 15, 2026
4eca3b7
test(e2e): count only four-hex claim files as kept tags
mikepitre Oct 15, 2026
98f7438
test(e2e): assert the claim file and its refusal in the claim test
mikepitre Oct 15, 2026
8b7f1b8
test(expo): tighten the recorder start lower bound to 95 ms
mikepitre Oct 15, 2026
f1c9290
Merge mike/expo-verify-r1-fixture into mike/expo-verify-r2-shared-core
mikepitre Oct 16, 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
2 changes: 2 additions & 0 deletions .changeset/expo-verify-e2e-small-fixes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
---
2 changes: 2 additions & 0 deletions .changeset/expo-verify-rename-e2e-tests.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
---
2 changes: 2 additions & 0 deletions .changeset/expo-verify-skill.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
---
1 change: 1 addition & 0 deletions .github/workflows/actions.lock
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ workflows:
- 'actions-cool/check-user-permission@v2.4.0'
- 'actions/checkout@v4.4.0'
- 'actions/github-script@v7.1.0'
- 'actions/setup-node@v4.4.0'
- 'actions/upload-artifact@v4.6.2'
- 'pnpm/action-setup@v4.3.0'
- 'useblacksmith/cache@v5'
Expand Down
58 changes: 58 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,64 @@ jobs:
pnpm changeset status --since=origin/main;
fi

expo-native-runner-tests:
needs: [check-permissions]
name: Expo Native Runner Tests
runs-on: 'blacksmith-8vcpu-ubuntu-2204'
defaults:
run:
shell: bash
timeout-minutes: ${{ vars.TIMEOUT_MINUTES_NORMAL && fromJSON(vars.TIMEOUT_MINUTES_NORMAL) || 5 }}

env:
PACKAGE: integration/expo-native
WATCHED: >-
integration/expo-native
.github/workflows/ci.yml
.github/workflows/verify-remote.yml
.github/actionlint.yaml
integration/templates/expo-native
packages/expo
packages/expo-biometrics
packages/expo-google-signin
packages/expo-native-components

steps:
- name: Checkout Repo
uses: actions/checkout@v4.4.0
with:
persist-credentials: false
fetch-depth: 2 # The pull request merge commit and its parents, to see what the PR changes
fetch-tags: false
show-progress: false

- name: Check whether the package changed
id: changed
env:
EVENT: ${{ github.event_name }}
run: |
if [ "$EVENT" != "pull_request" ] || ! git diff --quiet HEAD^1 HEAD -- $WATCHED; then
echo "package=true" >> "$GITHUB_OUTPUT"
fi

- name: Setup Node
if: steps.changed.outputs.package == 'true'
uses: actions/setup-node@v4.4.0
with:
node-version: 24.15.0

- name: Install the package's own dependencies
if: steps.changed.outputs.package == 'true'
run: npm ci --prefix "$PACKAGE"

- name: Run the package's unit tests, which include the check of the copied core against its manifest
if: steps.changed.outputs.package == 'true'
run: npm test --prefix "$PACKAGE"

- name: Typecheck the package
if: steps.changed.outputs.package == 'true'
run: npm run typecheck --prefix "$PACKAGE"

build-packages:
needs: [check-permissions]
name: Build Packages
Expand Down
15 changes: 15 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,18 @@ CLAUDE.md

# Written by `eslint --suppress-rule` / `--prune-suppressions`; ESLint owns the formatting.
/**/eslint-suppressions.json

# Copied byte for byte from another repo; do not reformat.
integration/expo-native/src/core/
integration/expo-native/src/platform/android/
integration/expo-native/src/platform/ios/
integration/expo-native/specs/fixtures.ts
integration/expo-native/specs/support/
integration/expo-native/testing/
integration/expo-native/e2e.config.ts
integration/expo-native/test/*.ts
!integration/expo-native/test/freshness.test.ts
!integration/expo-native/test/host.test.ts
!integration/expo-native/test/remote-host.test.ts
integration/expo-native/.verify/
integration/expo-native/specs/explored/
1 change: 1 addition & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,7 @@ export default tseslint.config([
'**/build/*',
'**/coverage/*',
'**/dist/*',
'**/integration/expo-native/**/*',
'**/integration/templates/**/*',
'**/node_modules/**',
'*.snap',
Expand Down
3 changes: 3 additions & 0 deletions integration/expo-native/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.e2e/
.verify/
specs/explored/
5 changes: 5 additions & 0 deletions integration/expo-native/e2e.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { app } from './specs/app.ts';
import { composeE2EConfig } from './specs/support/config.ts';
import { readTarget } from './specs/support/inputs.ts';

export default composeE2EConfig(app, readTarget(app, process.env), process.env);
Loading
Loading