From e635dff42c830d63a65e1b70d2044e74dab2f6a5 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 11 Nov 2026 12:25:43 +0000 Subject: [PATCH] docs(expo): say that AuthView also takes onHostBack in the verify skill Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01WtSUss7jFTC3k3wHhj5FDG --- .changeset/verify-expo-auth-view-host-back.md | 2 ++ .claude/skills/verify-clerk-expo/features/README.md | 2 +- .../verify-clerk-expo/features/user-button-and-profile.md | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 .changeset/verify-expo-auth-view-host-back.md diff --git a/.changeset/verify-expo-auth-view-host-back.md b/.changeset/verify-expo-auth-view-host-back.md new file mode 100644 index 00000000000..a845151cc84 --- /dev/null +++ b/.changeset/verify-expo-auth-view-host-back.md @@ -0,0 +1,2 @@ +--- +--- diff --git a/.claude/skills/verify-clerk-expo/features/README.md b/.claude/skills/verify-clerk-expo/features/README.md index 1c4b0e644e9..ae3cf077e27 100644 --- a/.claude/skills/verify-clerk-expo/features/README.md +++ b/.claude/skills/verify-clerk-expo/features/README.md @@ -60,6 +60,6 @@ Each feature file starts with an H1 title and one paragraph describing the user- - [Native modules](./native-modules.md) covers `useSignInWithGoogle` opening the native Google sign-in, a cancel of it on iOS, and on Android when back closes Google's page, and `useBiometricCredentials` reporting what its native module found on the device. - [Update required](./update-required.md) covers the update screen for a signed-in and a signed-out user on a build below the minimum, the same session returning once the minimum is lowered, and a build at the minimum, on both platforms, and it lists the states no spec reaches. -Not mapped yet: SSO through `useSSO` (no real OAuth on simulators), sign-in and sign-up in Account Portal through `useHostedAuth` from `@clerk/expo/hosted-auth`, which opens a browser that no spec drives and the test app has no button for (`packages/expo/src/hooks/useHostedAuth.ts`), a Google or Apple native sign-in with a real account, passkeys, enrolling or using a biometric (no associated domains or Secure Enclave on the simulator), session tasks in the native views. +Not mapped yet: SSO through `useSSO` (no real OAuth on simulators), sign-in and sign-up in Account Portal through `useHostedAuth` from `@clerk/expo/hosted-auth`, which opens a browser that no spec drives and the test app has no button for (`packages/expo/src/hooks/useHostedAuth.ts`), a Google or Apple native sign-in with a real account, passkeys, enrolling or using a biometric (no associated domains or Secure Enclave on the simulator), session tasks in the native views, and AuthView's `onHostBack` and `logoMaxHeight`, which the test app passes to no AuthView (`packages/expo-native-components/src/AuthView.tsx`). Organizations have no page, because a user of the test app has no way to reach organization UI. This holds for the native components only. `@clerk/expo/web` exports the clerk-js OrganizationProfile, OrganizationSwitcher, OrganizationList, and CreateOrganization for Expo web, but the test app runs native only. `@clerk/expo-native-components` exports AuthView, UserButton, and UserProfileView and no OrganizationSwitcher or OrganizationProfileView. The profile that the UserButton opens lists `Manage account`, `Security`, `Add account`, and `Sign out`, with `Switch account` once a second session exists, and no organization row, in the pinned clerk-ios and clerk-android releases, though the standard settings turn organizations on. The one organization screen that a native view shows is a session task in AuthView, choose or create an organization, which needs `force_organization_selection` on. The harness seeds users, sign-in tickets, and, through `host.seedOrganization`, organizations whose members hold one of the harness roles. It cannot seed invitations, so no spec can reach a choose-organization task that lists an invitation. Today such a state can be shown only with a local patch that is not committed, and the description of the pull request that shows it says so. diff --git a/.claude/skills/verify-clerk-expo/features/user-button-and-profile.md b/.claude/skills/verify-clerk-expo/features/user-button-and-profile.md index 167cd7e8724..e20cb1c129c 100644 --- a/.claude/skills/verify-clerk-expo/features/user-button-and-profile.md +++ b/.claude/skills/verify-clerk-expo/features/user-button-and-profile.md @@ -33,7 +33,7 @@ Preconditions: - The UserButton is `clerk.userButton.profile` on iOS and the accessibility label `Open user profile` on Android (`nativeUserButton` in `specs/native.ts`). - Profile rows have no stable identifier on Android, and on iOS the profile that the UserButton opens is inside a sheet, so the specs find the rows by text (`Manage account`, `Sign out`). - A seeded user has no name, so the profile header shows only the avatar. The email appears under `Manage account`. -- Open the profile from the UserButton, as a user does. Use the `embeddedProfile` screen for `onHostBack`, which only an inline UserProfileView has, and for custom pages, which the test app passes only to its inline UserProfileView. The UserButton also takes custom pages through `userProfileProps.customPages`, and no spec covers that. No spec covers a row with `href`, which opens a URL instead of React Native content, a row's `placement` among Clerk's rows, or a page in `customDestinations` that a custom page pushes with `useUserProfileCustomPageNavigation().push` (`packages/expo-native-components/src/UserProfileCustomPages.tsx`). +- Open the profile from the UserButton, as a user does. Use the `embeddedProfile` screen for `onHostBack` and for custom pages, which the test app passes only to its inline UserProfileView. The UserButton also takes custom pages through `userProfileProps.customPages`, and no spec covers that. No spec covers a row with `href`, which opens a URL instead of React Native content, a row's `placement` among Clerk's rows, or a page in `customDestinations` that a custom page pushes with `useUserProfileCustomPageNavigation().push` (`packages/expo-native-components/src/UserProfileCustomPages.tsx`). - Tap the profile's Back button with `tapProfileBack` from `specs/native.ts`, which taps the middle of its frame. On Android the label `Back` is on a group that holds the button, and `locator.tap()` on it fails with "no parent-owned touch point". - Do not call `host.screenshot` while a custom page is on screen. On iOS the Back button of the page then does nothing. The video shows the page. - The test app shows a spinner while the ticket sign-in runs, and `host.launch` waits for the home.