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