forked from binary-com/deriv-app
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request binary-com#83 from suisin-deriv/suisin/UPM828/canc…
…el_phone_verification_dialog Suisin/upm828/cancel phone verification dialog
- Loading branch information
Showing
6 changed files
with
161 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
69 changes: 69 additions & 0 deletions
69
.../src/Sections/Profile/PhoneVerification/__test__/cancel-phone-verification-modal.spec.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
import React from 'react'; | ||
import { render, screen } from '@testing-library/react'; | ||
import userEvent from '@testing-library/user-event'; | ||
import CancelPhoneVerificationModal from '../cancel-phone-verification-modal'; | ||
|
||
const mock_back_router = jest.fn(); | ||
jest.mock('react-router', () => ({ | ||
...jest.requireActual('react-router'), | ||
useHistory: () => ({ | ||
goBack: mock_back_router, | ||
}), | ||
})); | ||
|
||
describe('CancelPhoneVerificationModal', () => { | ||
let modal_root_el: HTMLElement; | ||
const mockSetShowCancelModal = jest.fn(); | ||
|
||
beforeAll(() => { | ||
modal_root_el = document.createElement('div'); | ||
modal_root_el.setAttribute('id', 'modal_root'); | ||
document.body.appendChild(modal_root_el); | ||
}); | ||
|
||
afterAll(() => { | ||
document.body.removeChild(modal_root_el); | ||
}); | ||
|
||
const buttons = [/Go back/, /Yes, cancel/]; | ||
|
||
it('it should render CancelPhoneVerificationModal', () => { | ||
render( | ||
<CancelPhoneVerificationModal | ||
should_show_cancel_verification_modal | ||
setShouldShowCancelVerificationModal={mockSetShowCancelModal} | ||
/> | ||
); | ||
expect(screen.getByText(/Cancel phone number verification?/)).toBeInTheDocument(); | ||
expect(screen.getByText(/All details entered will be lost./)).toBeInTheDocument(); | ||
buttons.forEach(value => { | ||
expect(screen.getByRole('button', { name: value })).toBeInTheDocument(); | ||
}); | ||
}); | ||
|
||
it('it should render only mockSetShowCancelModal when Go back is clicked', () => { | ||
render( | ||
<CancelPhoneVerificationModal | ||
should_show_cancel_verification_modal | ||
setShouldShowCancelVerificationModal={mockSetShowCancelModal} | ||
/> | ||
); | ||
const cancelButton = screen.getByRole('button', { name: buttons[0] }); | ||
userEvent.click(cancelButton); | ||
expect(mockSetShowCancelModal).toBeCalled(); | ||
expect(mock_back_router).not.toBeCalled(); | ||
}); | ||
|
||
it('it should render mockSetShowCancelModal and mock_back_router when Yes, cancel is clicked', () => { | ||
render( | ||
<CancelPhoneVerificationModal | ||
should_show_cancel_verification_modal | ||
setShouldShowCancelVerificationModal={mockSetShowCancelModal} | ||
/> | ||
); | ||
const cancelButton = screen.getByRole('button', { name: buttons[1] }); | ||
userEvent.click(cancelButton); | ||
expect(mockSetShowCancelModal).toBeCalled(); | ||
expect(mock_back_router).toBeCalled(); | ||
}); | ||
}); |
11 changes: 10 additions & 1 deletion
11
.../account/src/Sections/Profile/PhoneVerification/__test__/phone-verification-page.spec.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,23 @@ | ||
import { render, screen } from '@testing-library/react'; | ||
import React from 'react'; | ||
import { render, screen } from '@testing-library/react'; | ||
import userEvent from '@testing-library/user-event'; | ||
import PhoneVerificationPage from '../phone-verification-page'; | ||
|
||
jest.mock('../confirm-your-email.tsx', () => jest.fn(() => <div>Confirm Your Email</div>)); | ||
jest.mock('../confirm-phone-number.tsx', () => jest.fn(() => <div>Confirm Phone Number</div>)); | ||
jest.mock('../cancel-phone-verification-modal', () => jest.fn(() => <div>Cancel Phone Verification Modal</div>)); | ||
|
||
describe('ConfirmPhoneNumber', () => { | ||
it('should render ConfirmPhoneNumber', () => { | ||
render(<PhoneVerificationPage />); | ||
expect(screen.getByText(/Phone number verification/)).toBeInTheDocument(); | ||
expect(screen.getByText(/Confirm Your Email/)).toBeInTheDocument(); | ||
}); | ||
|
||
it('should display cancel phone verification modal when back button is clicked', () => { | ||
render(<PhoneVerificationPage />); | ||
const backButton = screen.getByTestId('dt_phone_verification_back_btn'); | ||
userEvent.click(backButton); | ||
expect(screen.getByText(/Cancel Phone Verification Modal/)).toBeInTheDocument(); | ||
}); | ||
}); |
57 changes: 57 additions & 0 deletions
57
packages/account/src/Sections/Profile/PhoneVerification/cancel-phone-verification-modal.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
import React from 'react'; | ||
import { Button, Text } from '@deriv-com/quill-ui'; | ||
import { Modal } from '@deriv/components'; | ||
import { Localize } from '@deriv/translations'; | ||
import { useHistory } from 'react-router'; | ||
|
||
type TCancelPhoneVerificationModal = { | ||
should_show_cancel_verification_modal: boolean; | ||
setShouldShowCancelVerificationModal: (value: boolean) => void; | ||
}; | ||
|
||
const CancelPhoneVerificationModal = ({ | ||
should_show_cancel_verification_modal, | ||
setShouldShowCancelVerificationModal, | ||
}: TCancelPhoneVerificationModal) => { | ||
const history = useHistory(); | ||
const handleCancelButton = () => { | ||
setShouldShowCancelVerificationModal(false); | ||
history.goBack(); | ||
}; | ||
|
||
return ( | ||
<Modal className='phone-verification__cancel-modal' is_open={should_show_cancel_verification_modal}> | ||
<Modal.Body> | ||
<div className='phone-verification__cancel-modal--contents'> | ||
<Text bold> | ||
<Localize i18n_default_text='Cancel phone number verification?' /> | ||
</Text> | ||
<Text> | ||
<Localize i18n_default_text='All details entered will be lost.' /> | ||
</Text> | ||
</div> | ||
</Modal.Body> | ||
<Modal.Footer> | ||
<div className='phone-verification__cancel-modal--buttons'> | ||
<Button | ||
color='black' | ||
fullWidth | ||
size='lg' | ||
onClick={() => setShouldShowCancelVerificationModal(false)} | ||
> | ||
<Text color='white' bold> | ||
<Localize i18n_default_text='Go back' /> | ||
</Text> | ||
</Button> | ||
<Button variant='secondary' color='black' fullWidth size='lg' onClick={handleCancelButton}> | ||
<Text bold> | ||
<Localize i18n_default_text='Yes, cancel' /> | ||
</Text> | ||
</Button> | ||
</div> | ||
</Modal.Footer> | ||
</Modal> | ||
); | ||
}; | ||
|
||
export default CancelPhoneVerificationModal; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters