11import { Share } from 'react-native' ;
22
3- import { useNavigation } from '@react-navigation/native' ;
4-
53import { getTranslation } from '@suite-native/intl' ;
6- import { ReceiveAddressVerificationSource , ReceiveStackRoutes } from '@suite-native/navigation' ;
4+ import { ReceiveAddressVerificationSource } from '@suite-native/navigation' ;
75import { renderWithBasicProvider , userEvent , waitFor } from '@suite-native/test-utils' ;
86
97import { ReceiveAddressActions } from './ReceiveAddressActions' ;
108
11- const mockCopyToClipboard = jest . fn ( ) ;
12- const mockOpenCopiedAddressBottomSheet = jest . fn ( ) ;
13- const mockCloseCopiedAddressBottomSheet = jest . fn ( ) ;
149const mockOpenSharedAddressBottomSheet = jest . fn ( ) ;
1510const mockCloseSharedAddressBottomSheet = jest . fn ( ) ;
11+ const mockCopyAddress = jest . fn ( ) ;
1612const mockVerifyAddress = jest . fn ( ) ;
1713const mockShare = jest . spyOn ( Share , 'share' ) ;
1814const mockUseBottomSheetModal = jest . fn ( ) ;
19- const mockNavigate = jest . fn ( ) ;
20-
21- jest . mock ( '@react-navigation/native' , ( ) => ( {
22- ...jest . requireActual ( '@react-navigation/native' ) ,
23- useNavigation : jest . fn ( ) ,
24- } ) ) ;
25-
26- jest . mock ( '@suite-native/clipboard' , ( ) => ( {
27- useCopyToClipboard : ( ) => mockCopyToClipboard ,
28- } ) ) ;
2915
3016jest . mock ( '@suite-native/atoms' , ( ) => ( {
3117 ...jest . requireActual ( '@suite-native/atoms' ) ,
@@ -34,70 +20,45 @@ jest.mock('@suite-native/atoms', () => ({
3420
3521describe ( 'ReceiveAddressActions' , ( ) => {
3622 const address = 'bc1qreceiveaddress' ;
37- const mockUseNavigation = jest . mocked ( useNavigation ) ;
3823
3924 const renderActions = ( ) =>
4025 renderWithBasicProvider (
41- < ReceiveAddressActions address = { address } onVerifyAddress = { mockVerifyAddress } /> ,
26+ < ReceiveAddressActions
27+ address = { address }
28+ onCopyAddress = { mockCopyAddress }
29+ onVerifyAddress = { mockVerifyAddress }
30+ /> ,
4231 ) ;
4332
4433 beforeEach ( ( ) => {
4534 jest . clearAllMocks ( ) ;
46- mockCopyToClipboard . mockResolvedValue ( undefined ) ;
47- mockVerifyAddress . mockResolvedValue ( undefined ) ;
35+ mockCopyAddress . mockResolvedValue ( undefined ) ;
4836 mockShare . mockResolvedValue ( { action : Share . sharedAction } ) ;
49- mockUseNavigation . mockReturnValue ( { navigate : mockNavigate } as never ) ;
50- mockUseBottomSheetModal
51- . mockReturnValueOnce ( {
52- bottomSheetRef : { current : null } ,
53- openModal : mockOpenCopiedAddressBottomSheet ,
54- closeModal : mockCloseCopiedAddressBottomSheet ,
55- } )
56- . mockReturnValueOnce ( {
57- bottomSheetRef : { current : null } ,
58- openModal : mockOpenSharedAddressBottomSheet ,
59- closeModal : mockCloseSharedAddressBottomSheet ,
60- } ) ;
37+ mockUseBottomSheetModal . mockReturnValue ( {
38+ bottomSheetRef : { current : null } ,
39+ openModal : mockOpenSharedAddressBottomSheet ,
40+ closeModal : mockCloseSharedAddressBottomSheet ,
41+ } ) ;
6142 } ) ;
6243
63- it ( 'opens the verification sheet after copying the address' , async ( ) => {
44+ it ( 'copies the address' , async ( ) => {
6445 const { getByText } = renderActions ( ) ;
6546
6647 await userEvent . press ( getByText ( getTranslation ( 'qrCode.copyButton' ) ) ) ;
6748
6849 await waitFor ( ( ) => {
69- expect ( mockCopyToClipboard ) . toHaveBeenCalledWith (
70- address ,
71- getTranslation ( 'qrCode.addressCopied' ) ,
72- ) ;
73- expect ( mockOpenCopiedAddressBottomSheet ) . toHaveBeenCalledTimes ( 1 ) ;
50+ expect ( mockCopyAddress ) . toHaveBeenCalledTimes ( 1 ) ;
7451 expect ( mockOpenSharedAddressBottomSheet ) . not . toHaveBeenCalled ( ) ;
7552 } ) ;
7653 } ) ;
7754
78- it ( 'closes the sheet and starts address verification' , async ( ) => {
79- const { getByTestId } = renderActions ( ) ;
80-
81- await userEvent . press ( getByTestId ( '@receive/address-verification/pasted/verify-button' ) ) ;
82-
83- expect ( mockCloseCopiedAddressBottomSheet ) . toHaveBeenCalledTimes ( 1 ) ;
84- expect ( mockNavigate ) . toHaveBeenCalledWith ( ReceiveStackRoutes . ReceiveAddressVerification , {
85- source : ReceiveAddressVerificationSource . Pasted ,
86- } ) ;
87- expect ( mockVerifyAddress ) . toHaveBeenCalledWith ( ) ;
88- } ) ;
89-
9055 it ( 'starts address verification directly' , async ( ) => {
9156 const { getByText } = renderActions ( ) ;
9257
9358 await userEvent . press ( getByText ( getTranslation ( 'moduleReceive.addressActions.verify' ) ) ) ;
9459
95- expect ( mockCloseCopiedAddressBottomSheet ) . not . toHaveBeenCalled ( ) ;
9660 expect ( mockCloseSharedAddressBottomSheet ) . not . toHaveBeenCalled ( ) ;
97- expect ( mockNavigate ) . toHaveBeenCalledWith ( ReceiveStackRoutes . ReceiveAddressVerification , {
98- source : ReceiveAddressVerificationSource . Pasted ,
99- } ) ;
100- expect ( mockVerifyAddress ) . toHaveBeenCalledWith ( ) ;
61+ expect ( mockVerifyAddress ) . toHaveBeenCalledWith ( ReceiveAddressVerificationSource . Pasted ) ;
10162 } ) ;
10263
10364 it ( 'opens shared address verification after sharing' , async ( ) => {
@@ -109,10 +70,7 @@ describe('ReceiveAddressActions', () => {
10970 expect ( mockShare ) . toHaveBeenCalledWith ( { message : address } ) ;
11071 expect ( mockOpenSharedAddressBottomSheet ) . toHaveBeenCalledTimes ( 1 ) ;
11172 expect ( mockCloseSharedAddressBottomSheet ) . toHaveBeenCalledTimes ( 1 ) ;
112- expect ( mockNavigate ) . toHaveBeenCalledWith ( ReceiveStackRoutes . ReceiveAddressVerification , {
113- source : ReceiveAddressVerificationSource . Shared ,
114- } ) ;
115- expect ( mockVerifyAddress ) . toHaveBeenCalledWith ( ) ;
73+ expect ( mockVerifyAddress ) . toHaveBeenCalledWith ( ReceiveAddressVerificationSource . Shared ) ;
11674 } ) ;
11775
11876 it ( 'does not open shared address verification after cancelling sharing' , async ( ) => {
0 commit comments