From d7914b9b5640c3d85c6230a032180b2e64520bca Mon Sep 17 00:00:00 2001 From: Anike Arni Date: Fri, 31 Mar 2017 17:31:32 -0300 Subject: [#935] Submits password to account recovery endpoint --- .../new_password_form/new_password_form.js | 67 ++++++++++++++-------- .../new_password_form/new_password_form.spec.js | 10 ++++ 2 files changed, 53 insertions(+), 24 deletions(-) (limited to 'web-ui') diff --git a/web-ui/src/account_recovery/new_password_form/new_password_form.js b/web-ui/src/account_recovery/new_password_form/new_password_form.js index b18bc8ff..4c418900 100644 --- a/web-ui/src/account_recovery/new_password_form/new_password_form.js +++ b/web-ui/src/account_recovery/new_password_form/new_password_form.js @@ -26,30 +26,49 @@ import BackLink from 'src/common/back_link/back_link'; import './new_password_form.scss'; -const submitHandler = code => event => ( - submitForm(event, '/account-recovery', { userCode: code }) -); - -export const NewPasswordForm = ({ t, previous, userCode }) => ( -
- {t('account-recovery.new-password-form.image-description')} -

{t('account-recovery.new-password-form.title')}

- - - - - -); +export class NewPasswordForm extends React.Component { + submitHandler = (event) => { + submitForm(event, '/account-recovery', { + userCode: this.props.userCode, + password: this.state.password, + confirmation: this.state.confirmation + }); + } + + handlePasswordChange = (event) => { + this.setState({ password: event.target.value }); + } + + handlePasswordConfirmationChange = (event) => { + this.setState({ confirmation: event.target.value }); + } + + render() { + const { t, previous } = this.props; + return ( +
+ {t('account-recovery.new-password-form.image-description')} +

{t('account-recovery.new-password-form.title')}

+ + + + + + ); + } +} NewPasswordForm.propTypes = { t: React.PropTypes.func.isRequired, diff --git a/web-ui/src/account_recovery/new_password_form/new_password_form.spec.js b/web-ui/src/account_recovery/new_password_form/new_password_form.spec.js index 5ffd9720..26b8651c 100644 --- a/web-ui/src/account_recovery/new_password_form/new_password_form.spec.js +++ b/web-ui/src/account_recovery/new_password_form/new_password_form.spec.js @@ -42,6 +42,8 @@ describe('NewPasswordForm', () => { describe('Submit', () => { beforeEach(() => { fetchMock.post('/account-recovery', 200); + newPasswordForm.find('InputField[name="new-password"]').simulate('change', { target: { value: '123' } }); + newPasswordForm.find('InputField[name="confirm-password"]').simulate('change', { target: { value: '456' } }); newPasswordForm.find('form').simulate('submit', { preventDefault: expect.createSpy() }); }); @@ -52,5 +54,13 @@ describe('NewPasswordForm', () => { it('sends user code as content', () => { expect(fetchMock.lastOptions('/account-recovery').body).toContain('"userCode":"def234"'); }); + + it('sends password as content', () => { + expect(fetchMock.lastOptions('/account-recovery').body).toContain('"password":"123"'); + }); + + it('sends password confirmation as content', () => { + expect(fetchMock.lastOptions('/account-recovery').body).toContain('"confirmation":"456"'); + }); }); }); -- cgit v1.2.3