@@ -14,6 +14,12 @@ import {
1414
1515jest . mock ( '../../../models/AlertBarInfo' ) ;
1616
17+ const mockNavigate = jest . fn ( ) ;
18+ jest . mock ( '@reach/router' , ( ) => ( {
19+ ...jest . requireActual ( '@reach/router' ) ,
20+ useNavigate : ( ) => mockNavigate ,
21+ } ) ) ;
22+
1723const phoneNumberWithoutCountryCode = MOCK_FULL_PHONE_NUMBER . slice ( 2 ) ;
1824const otpCode = '123456' ;
1925const mockSuccessResponse = {
@@ -118,4 +124,58 @@ describe('PageRecoveryPhoneSetup', () => {
118124 MOCK_FULL_PHONE_NUMBER
119125 ) ;
120126 } ) ;
127+
128+ it ( 'at step 1, handles back arrow click to return to settings' , async ( ) => {
129+ const user = userEvent . setup ( ) ;
130+ const confirmRecoveryPhone = jest
131+ . fn ( )
132+ . mockResolvedValueOnce ( mockSuccessResponse ) ;
133+ const addRecoveryPhone = jest
134+ . fn ( )
135+ . mockResolvedValueOnce ( mockSuccessResponse ) ;
136+ renderWithRouter (
137+ < Subject account = { { confirmRecoveryPhone, addRecoveryPhone } } />
138+ ) ;
139+
140+ await waitFor ( ( ) =>
141+ expect (
142+ screen . getByRole ( 'heading' , { name : 'Verify your phone number' } )
143+ ) . toBeVisible ( )
144+ ) ;
145+
146+ await waitFor ( async ( ) => {
147+ user . click ( screen . getByRole ( 'button' , { name : 'Back to settings' } ) ) ;
148+ } ) ;
149+
150+ await waitFor ( ( ) => expect ( mockNavigate ) . toHaveBeenCalledTimes ( 1 ) ) ;
151+ } ) ;
152+
153+ it ( 'at step 2, handles back arrow click to return to step 1' , async ( ) => {
154+ const user = userEvent . setup ( ) ;
155+ const confirmRecoveryPhone = jest
156+ . fn ( )
157+ . mockResolvedValueOnce ( mockSuccessResponse ) ;
158+ const addRecoveryPhone = jest
159+ . fn ( )
160+ . mockResolvedValueOnce ( mockSuccessResponse ) ;
161+ renderWithRouter (
162+ < Subject account = { { confirmRecoveryPhone, addRecoveryPhone } } />
163+ ) ;
164+
165+ await completeStepOne ( user ) ;
166+ await waitFor ( ( ) => {
167+ expect (
168+ screen . getByText ( / A s i x - d i g i t c o d e w a s s e n t / i)
169+ ) . toBeInTheDocument ( ) ;
170+ } ) ;
171+ await waitFor ( async ( ) => {
172+ user . click ( screen . getByRole ( 'button' , { name : 'Change phone number' } ) ) ;
173+ } ) ;
174+
175+ await waitFor ( ( ) =>
176+ expect (
177+ screen . getByRole ( 'heading' , { name : 'Verify your phone number' } )
178+ ) . toBeVisible ( )
179+ ) ;
180+ } ) ;
121181} ) ;
0 commit comments