Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 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
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 @@
---
---
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@11d5960a326750d5838078e36cf38b85af677262 # v4
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@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
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