diff --git a/src/features/inviteFriends/components/AddToWalletButton.test.tsx b/src/features/inviteFriends/components/AddToWalletButton.test.tsx
index 89830bb1b9..7aa2608c2f 100644
--- a/src/features/inviteFriends/components/AddToWalletButton.test.tsx
+++ b/src/features/inviteFriends/components/AddToWalletButton.test.tsx
@@ -156,33 +156,13 @@ test('iOS: mints token then calls addPass with the returned URL', async () => {
)
})
-// Test 6: Android press flow
-test('Android: fetches JWT then calls addPassWithSignedJwt', async () => {
+// Test 6: Android is gated out for iOS-only launch (Google Wallet backend not provisioned)
+test('Android: renders null until Google Wallet backend is wired', () => {
;(Platform as {OS: string}).OS = 'android'
- global.fetch = jest.fn().mockResolvedValue({
- ok: true,
- json: () => Promise.resolve({jwt: 'signed-jwt'}),
- })
- const {UNSAFE_getByType} = render(
+ const {toJSON} = render(
,
)
- await waitFor(() =>
- UNSAFE_getByType('RNWalletView' as unknown as ComponentType),
- )
- const view = UNSAFE_getByType(
- 'RNWalletView' as unknown as ComponentType,
- ) as unknown as {
- props: {onPress: () => Promise}
- }
- const {onPress} = view.props
- await act(async () => {
- await onPress()
- })
- expect(global.fetch).toHaveBeenCalledWith(
- 'https://bsky.app/invite/wallet/jwt?theme=day',
- expect.objectContaining({headers: expect.any(Object)}),
- )
- expect(RNWallet.addPassWithSignedJwt).toHaveBeenCalledWith('signed-jwt')
+ expect(toJSON()).toBeNull()
})
// Test 7: error path
diff --git a/src/features/inviteFriends/components/AddToWalletButton.tsx b/src/features/inviteFriends/components/AddToWalletButton.tsx
index 88836d1888..f1eca8a186 100644
--- a/src/features/inviteFriends/components/AddToWalletButton.tsx
+++ b/src/features/inviteFriends/components/AddToWalletButton.tsx
@@ -43,6 +43,9 @@ export function AddToWalletButton({
}, [handle])
if (IS_WEB) return null
+ // iOS-only launch: Google Wallet backend is not yet provisioned. Once
+ // the Google Wallet API issuer + service account land, drop this gate.
+ if (Platform.OS !== 'ios') return null
if (!handle || handle === 'handle.invalid') return null
if (canAdd !== true) return null