summaryrefslogtreecommitdiff
path: root/web-ui/src/backup_account
diff options
context:
space:
mode:
authorTayane Fernandes <tayane.rmf@gmail.com>2017-03-09 18:54:10 -0300
committerTayane Fernandes <tayane.rmf@gmail.com>2017-03-10 13:36:08 -0300
commitaad05a38511a8bdd9bd13d2d38092ce6b35ac46b (patch)
tree04a8ab8816aee83e5b9c4bc0a1c059caa99338f7 /web-ui/src/backup_account
parentdc982839a98e2b165832dc243ec17d7631dec769 (diff)
[#923] Disable button when the email is invalid on the backup email page
with @FrailWords
Diffstat (limited to 'web-ui/src/backup_account')
-rw-r--r--web-ui/src/backup_account/page.js8
-rw-r--r--web-ui/src/backup_account/page.spec.js21
2 files changed, 22 insertions, 7 deletions
diff --git a/web-ui/src/backup_account/page.js b/web-ui/src/backup_account/page.js
index 1feb7546..73a5718b 100644
--- a/web-ui/src/backup_account/page.js
+++ b/web-ui/src/backup_account/page.js
@@ -32,13 +32,15 @@ export class Page extends React.Component {
constructor(props) {
super(props);
- this.state = { error: '' };
+ this.state = { error: '', validEmail: false };
this.validateEmail = this.validateEmail.bind(this);
}
validateEmail(event) {
+ const validEmail = validator.isEmail(event.target.value);
this.setState({
- error: validator.isEmail(event.target.value) ? '' : 'Your email is invalid'
+ error: validEmail ? '' : 'Your email is invalid',
+ validEmail
});
}
@@ -60,7 +62,7 @@ export class Page extends React.Component {
<p>{t('backup-account.paragraph1')}</p>
<p>{t('backup-account.paragraph2')}</p>
<InputField name='email' label={t('backup-account.input-label')} errorText={this.state.error} onChange={this.validateEmail} />
- <SubmitButton buttonText={t('backup-account.button')} />
+ <SubmitButton buttonText={t('backup-account.button')} disabled={!this.state.validEmail} />
<div>
<a href='/' className='link'>
<i className='fa fa-angle-left' aria-hidden='true' />
diff --git a/web-ui/src/backup_account/page.spec.js b/web-ui/src/backup_account/page.spec.js
index f9c5251a..30aefc96 100644
--- a/web-ui/src/backup_account/page.spec.js
+++ b/web-ui/src/backup_account/page.spec.js
@@ -24,16 +24,29 @@ describe('BackupAccount', () => {
});
describe('Email validation', () => {
+ let pageInstance;
+
+ beforeEach(() => {
+ pageInstance = page.instance();
+ });
+
it('should set error in state when email is invalid', () => {
- var pageInstance = page.instance();
- pageInstance.validateEmail({target: {value: 'test'}});
+ pageInstance.validateEmail({ target: { value: 'test' } });
expect(pageInstance.state.error).toEqual('Your email is invalid');
});
it('should not set error in state when email is valid', () => {
- var pageInstance = page.instance();
- pageInstance.validateEmail({target: {value: 'test@test.com'}});
+ pageInstance.validateEmail({ target: { value: 'test@test.com' } });
expect(pageInstance.state.error).toEqual('');
});
+
+ it('submit button should be disabled when email field is empty', () => {
+ expect(page.find('SubmitButton').props().disabled).toEqual(true);
+ });
+
+ it('submit button should be enabled when email field is valid', () => {
+ pageInstance.setState({ validEmail: true });
+ expect(page.find('SubmitButton').props().disabled).toEqual(false);
+ });
});
});