Repository navigation
Conversation
…t job The package installs its own dependencies with npm ci from its own lockfile, outside the pnpm workspace. The Expo Native Runner Tests job runs its unit tests and tsc when a pull request changes it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-ios and clerk-android Every file in this commit is a byte copy of the same path under e2e-tests/ on main of clerk/clerk-ios or clerk/clerk-android, except three. specs/app.ts names this repository's test app, src/platform/ios/simulator.ts holds its simctl commands, and test/session-agent.test.ts is the shared test without its one case that names the app sources of clerk-ios. src/core/MANIFEST lists the shared files with their hashes, and a unit test fails when one drifts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each test starts at the fixture's home and taps to the screen it needs, as a user would. specs/native.ts holds the locators of the home's buttons. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🦋 Changeset detectedLatest commit: 8b7f1b8 The changes in this PR will be included in the next version bump. This PR includes changesets to release 0 packagesWhen changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Comment |
mikepitre
added this pull request to stack #10239
October 14, 2026 17:56
This was referenced Oct 14, 2026
This was referenced Oct 14, 2026
@clerk/astro
@clerk/backend
@clerk/chrome-extension
@clerk/clerk-js
@clerk/electron
@clerk/electron-passkeys
@clerk/eslint-plugin
@clerk/expo
@clerk/expo-biometrics
@clerk/expo-google-signin
@clerk/expo-native-components
@clerk/expo-passkeys
@clerk/express
@clerk/fastify
@clerk/hono
@clerk/localizations
@clerk/mosaic
@clerk/nextjs
@clerk/nuxt
@clerk/react
@clerk/react-router
@clerk/shared
@clerk/tanstack-react-start
@clerk/testing
@clerk/ui
@clerk/upgrade
@clerk/vue
commit: |
The job skipped its steps on a pull request that changed none of a list of paths, but the list watched the whole Expo packages and missed files the tests read. It now watches the package, the workflows and template screens its tests read, and watches the paths the host tests only require to exist for a deletion or a move alone. A new test runs the job's check against real merge commits, and fails when a test reads a workflow or repository file the list does not watch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CodeQL flagged the modulo and addition on random bytes in the password generator as biased. A new password now takes each word with randomInt. The run password stays a pure function of the run id, read from its SHA-256 digest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tap keeps the next one from counting Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A worktree keeps one application across many runs, and a run finds its users there by the 4-hex tag alone. A new run id now skips the tag of every run the worktree kept. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A four-hex tail had no digit about one time in 50, so the run-groups test that expects one failed at random. The tail is now four decimal digits, for the run password and for seeded users. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…f its wait A Node timer can fire a millisecond before Date.now() shows the full delay. The session agent answers with Date.now() minus the spawn time after a 100 ms timer, so the answer is sometimes 99 and the test failed on its exact lower bound. The bound is now 50 ms. It still fails if the agent answers a recorder that has not run, and no longer depends on millisecond timer precision. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… space newRun() now creates a per-tag marker with an exclusive write, so two runs that read the same listing cannot both keep one tag. newRunId throws when every tag is taken instead of looping forever. Tests pin that newRun passes the kept runs into the draw, that a claimed tag is skipped, and the exhausted case. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A claim file whose run directory is gone still keeps its tag out of the draw, and the exhausted-space check counts it. newRunId takes the tags directly, so the workspace passes both run directories and claims. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A stray file such as .tag-notes no longer counts toward the tags a worktree has used, so it cannot push the set past the exhausted-space check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The test passed even if claimTag never wrote the claim file, because the first run's directory already put its tag in the kept list. It now checks the .tag-beef file exists after newRun() and that the tag is not handed out again once the run directory is gone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch was successfully deployed
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.
Description
This is the second of four pull requests that replace the eleven of stack #10100. It sits on #10235, and #10237 sits on it. It holds the end-to-end tests that #10087 added and the shared core they run on, in their final state after the edits of #10131, #10219, #10221, #10225, #10227, and #10230.
integration/expo-native/is a Node package that installs its own dependencies withnpm cifrom its own lockfile, outside the pnpm workspace. Its core is the code that clerk-ios, clerk-android, and this repository share: the CLI's verbs, device leases, the throwaway Clerk application of a session, the stand-in for Clerk's Backend API that the tests call, secret redaction, the evidence of a run, the borrowed-device session, and the support code of the e2e tests. The Expo host that builds the fixture and runs the CLI is in #10237, so this package has nobin/control-clerk-expoyet.The three commits:
package.json, the generatedpackage-lock.json(1,783 lines),tsconfig.json, theExpo Native Runner Testsjob inci.yml, and the entries that keep the repository's formatter and linter off the package.specs/features/, in seven feature groups, andspecs/native.ts, the locators of the fixture's home. Read these.Of the 109 files of commit 2, 106 files, 21,303 lines, are byte copies of the same path under
e2e-tests/onmainof clerk/clerk-ios (bd2266d3c) or clerk/clerk-android (ca990b48), where they were reviewed and merged.src/core/MANIFESTlists the shared files with their hashes, andnpm testfails when one drifts. To check them against clerk-ios:The second command prints nothing.
src/platform/android/andtest/android.test.tsare copies from clerk-android. The three files of commit 2 that are this repository's own arespecs/app.ts, which names the test app and how to launch its dev client,src/platform/ios/simulator.ts, which holds thesimctlcommands with this repository's log predicate, andtest/session-agent.test.ts, the shared test without its one case that names the app sources of clerk-ios.What to read, in this order:
specs/features/. Each starts at the fixture's home from test(expo): drive the expo-native fixture from verify launch inputs #10235 and taps to the screen it needs, as a user would. They assert on what a user sees, in the prebuilt views first and on the home for the outcome of a flow. They type only+clerk_testaddresses and the test code424242. Two are for iOS only, so Android runs 15.package.json:e2e0.18.0,@e2e-dev/mobile0.10.0,@e2e-dev/github0.4.0,ai7.0.128, andtypescript7.0.2, on Node 24.8 or newer.Expo Native Runner Testsjob inci.yml. It runs the package's unit tests andtscon Linux, with no device and no secret, when a pull request changes the package, the fixture, or an Expo package.The three changesets are the empty ones that #10087, #10225, and #10227 carried. No published package changes.
npm testinintegration/expo-native/passes 712 of 712 on this branch, andnpm run typecheckis clean.Checklist
pnpm testruns as expected.pnpm buildruns as expected.Type of change
🤖 Generated with Claude Code