summaryrefslogtreecommitdiff
path: root/web-ui/src/account_recovery/new_password_form
diff options
context:
space:
mode:
Diffstat (limited to 'web-ui/src/account_recovery/new_password_form')
-rw-r--r--web-ui/src/account_recovery/new_password_form/new_password_form.js13
-rw-r--r--web-ui/src/account_recovery/new_password_form/new_password_form.spec.js18
2 files changed, 27 insertions, 4 deletions
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 f1097b0b..b18bc8ff 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
@@ -15,17 +15,23 @@
* along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
*/
+import 'isomorphic-fetch';
import React from 'react';
import { translate } from 'react-i18next';
+import { submitForm } from 'src/common/util';
import InputField from 'src/common/input_field/input_field';
import SubmitButton from 'src/common/submit_button/submit_button';
import BackLink from 'src/common/back_link/back_link';
import './new_password_form.scss';
-export const NewPasswordForm = ({ t, previous }) => (
- <form className='account-recovery-form new-password'>
+const submitHandler = code => event => (
+ submitForm(event, '/account-recovery', { userCode: code })
+);
+
+export const NewPasswordForm = ({ t, previous, userCode }) => (
+ <form className='account-recovery-form new-password' onSubmit={submitHandler(userCode)}>
<img
className='account-recovery-progress'
src='/public/images/account-recovery/step_3.svg'
@@ -47,7 +53,8 @@ export const NewPasswordForm = ({ t, previous }) => (
NewPasswordForm.propTypes = {
t: React.PropTypes.func.isRequired,
- previous: React.PropTypes.func.isRequired
+ previous: React.PropTypes.func.isRequired,
+ userCode: React.PropTypes.string.isRequired
};
export default translate('', { wait: true })(NewPasswordForm);
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 d2bd350c..5ffd9720 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
@@ -1,6 +1,7 @@
import { shallow } from 'enzyme';
import expect from 'expect';
import React from 'react';
+import fetchMock from 'fetch-mock';
import { NewPasswordForm } from './new_password_form';
describe('NewPasswordForm', () => {
@@ -11,7 +12,7 @@ describe('NewPasswordForm', () => {
const mockTranslations = key => key;
mockPrevious = expect.createSpy();
newPasswordForm = shallow(
- <NewPasswordForm t={mockTranslations} previous={mockPrevious} />
+ <NewPasswordForm t={mockTranslations} previous={mockPrevious} userCode='def234' />
);
});
@@ -37,4 +38,19 @@ describe('NewPasswordForm', () => {
newPasswordForm.find('BackLink').simulate('click');
expect(mockPrevious).toHaveBeenCalled();
});
+
+ describe('Submit', () => {
+ beforeEach(() => {
+ fetchMock.post('/account-recovery', 200);
+ newPasswordForm.find('form').simulate('submit', { preventDefault: expect.createSpy() });
+ });
+
+ it('posts to account recovery', () => {
+ expect(fetchMock.called('/account-recovery')).toBe(true, 'POST was not called');
+ });
+
+ it('sends user code as content', () => {
+ expect(fetchMock.lastOptions('/account-recovery').body).toContain('"userCode":"def234"');
+ });
+ });
});