Skip to content

Commit ac24c87

Browse files
mikepitreclaude
andauthored
docs(expo): fix the e2e version and the CI claim in the Expo verify skill (#10576)
Co-authored-by: Claude <noreply@anthropic.com>
1 parent 106a746 commit ac24c87

2 files changed

Lines changed: 5 additions & 3 deletions

File tree

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
---

‎.claude/skills/verify-clerk-expo/SKILL.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: Drive @clerk/expo and @clerk/expo-native-components in the expo-nat
55

66
# verify-clerk-expo
77

8-
`integration/expo-native/bin/control-clerk-expo` is a control CLI over [e2e](https://github.com/tester-army/e2e) 0.18.0 and `@e2e-dev/mobile` 0.10.0. It builds the `expo-native` test app in `integration/templates/expo-native`, leases a simulator or emulator, creates one Clerk application for the worktree, seeds `+clerk_test` users, runs specs, and keeps the evidence. On a Mac the device is local, the test app is a Debug dev client, and Metro serves your working tree to it. On a machine that cannot run the device, the CLI leases one on a GitHub Actions runner, and the runner builds your pushed commit as a Release app with the JS embedded. The verbs, specs, and evidence are the same.
8+
`integration/expo-native/bin/control-clerk-expo` is a control CLI over [e2e](https://github.com/tester-army/e2e) 0.22.0 and `@e2e-dev/mobile` 0.10.0. It builds the `expo-native` test app in `integration/templates/expo-native`, leases a simulator or emulator, creates one Clerk application for the worktree, seeds `+clerk_test` users, runs specs, and keeps the evidence. On a Mac the device is local, the test app is a Debug dev client, and Metro serves your working tree to it. On a machine that cannot run the device, the CLI leases one on a GitHub Actions runner, and the runner builds your pushed commit as a Release app with the JS embedded. The verbs, specs, and evidence are the same.
99

1010
The tests are an ordinary e2e project. `e2e.config.ts` and `specs/` run under `npx e2e run` when the environment names a device, a build of the test app, and a development instance's keys. The CLI sits on top: it makes those three for a run and keeps the evidence. [The package README](../../../integration/expo-native/README.md) has the commands for a run by hand and what such a run leaves out.
1111

@@ -225,7 +225,7 @@ await host.evidence('sign in with an email code', async () => {
225225

226226
`attach --video` posts each marked block with a second before it and half a second after it, and shortens every stretch of more than a second where the screen does not change to one second, keeping two seconds of the result at the end of a block. It refuses a run with no marked block. A before run that failed before its block posts its whole video with the same shortening. It draws a short blue pulse where each `host.tap`, `host.back`, and `host.fill` tapped. The pulse starts 0.2 seconds before the video first shows the tapped control change, so it shows on the control before the screen moves. When the video shows no change near the tapped point, or the screen there is already moving when the tap is sent, the pulse starts when the tap was sent. The cut never removes a still stretch across a pulse. `attach` prints how long the video was, how long the posted part is, and how many taps it marked. The cut needs ffmpeg on `PATH`: without it `attach` posts the whole video and says so, and `doctor` has a `video-cut` line.
227227

228-
A run that names its specs and records a video is paced for a reviewer. Before each `host.tap`, `host.back`, and `host.fill` it waits for the target to show and then 0.6 seconds more, and at the end of each `host.evidence` block it holds the result for two seconds. Nothing else is slowed. A tap made any other way, such as the locator's own `tap`, gets no pause and no pulse, and so does `device.back()`. So inside a `host.evidence` block, tap with `host.tap`, and go back with `host.back()`. It taps the middle of the screen's back control, as a user does: the navigation bar's back button, `BackButton`, on iOS, and the top bar's back arrow, labelled `Back`, on Android. It fails when the screen shows neither. `run --all`, which PR CI uses, and `run --no-video` keep full speed, so pass `--no-video` while you iterate on a spec. Neither `simctl io recordVideo` nor the emulator's `screenrecord` records a touch indicator, so the pulses are the only sign of a tap. After the tests, `run` reads the size of the screen to place them. When it cannot, it says so, and `attach` draws no pulses for that run.
228+
A run that names its specs and records a video is paced for a reviewer. Before each `host.tap`, `host.back`, and `host.fill` it waits for the target to show and then 0.6 seconds more, and at the end of each `host.evidence` block it holds the result for two seconds. Nothing else is slowed. A tap made any other way, such as the locator's own `tap`, gets no pause and no pulse, and so does `device.back()`. So inside a `host.evidence` block, tap with `host.tap`, and go back with `host.back()`. It taps the middle of the screen's back control, as a user does: the navigation bar's back button, `BackButton`, on iOS, and the top bar's back arrow, labelled `Back`, on Android. It fails when the screen shows neither. `run --all`, which the release workflow uses, and `run --no-video` keep full speed, so pass `--no-video` while you iterate on a spec. Neither `simctl io recordVideo` nor the emulator's `screenrecord` records a touch indicator, so the pulses are the only sign of a tap. After the tests, `run` reads the size of the screen to place them. When it cannot, it says so, and `attach` draws no pulses for that run.
229229

230230
Choose before and after, or after only, by whether the thing existed. A change to something that exists shows what it replaced, so add `--before <run-id>`. Something new has no before, so leave the flag out.
231231

@@ -279,7 +279,7 @@ $ integration/expo-native/bin/control-clerk-expo down
279279
$ git push origin --delete <branch>-before && git branch -D <branch>-before
280280
```
281281

282-
Attach the run of your own change. Run your new or changed spec on its own and attach that run, so the screenshots or the video show only what the change is about. A run of `--all` marks nothing, so `attach --video` refuses it. You do not owe a regression run: PR CI (`.github/workflows/verify-e2e.yml`) runs every committed spec on the pull request and reports them there. If you ran other committed specs anyway, cite that run's id in the PR and leave its video in `.verify/runs/`.
282+
Attach the run of your own change. Run your new or changed spec on its own and attach that run, so the screenshots or the video show only what the change is about. A run of `--all` marks nothing, so `attach --video` refuses it. No CI job runs the committed specs on your pull request, because `.github/workflows/verify-e2e.yml` runs them only on the Version packages pull request, so run the specs of each feature your change shares code with yourself, as [Check your work](#check-your-work) says. If you ran other committed specs, cite that run's id in the PR and leave its video in `.verify/runs/`.
283283

284284
## Cleanup
285285

0 commit comments

Comments
 (0)