fix optional field not available (#149)

This commit is contained in:
Zainab Amir
2021-02-19 18:50:00 +05:00
committed by GitHub
parent d55d38f4fa
commit c55088f23f
2 changed files with 31 additions and 14 deletions

View File

@@ -528,20 +528,22 @@ class RegistrationPage extends React.Component {
}}
/>
</div>
<AuthnValidationFormGroup
label=""
for="optional"
name="optional"
type="checkbox"
value={this.state.enableOptionalField}
onClick={(e) => this.handleOnOptional(e)}
onBlur={null}
onChange={(e) => this.handleOnOptional(e)}
optionalFieldCheckbox
isChecked={this.state.enableOptionalField}
checkboxMessage={intl.formatMessage(messages['support.education.research'])}
/>
{ this.state.enableOptionalField ? this.getOptionalFields() : null}
{getConfig().REGISTRATION_OPTIONAL_FIELDS ? (
<AuthnValidationFormGroup
label=""
for="optional"
name="optional"
type="checkbox"
value={this.state.enableOptionalField}
onClick={(e) => this.handleOnOptional(e)}
onBlur={null}
onChange={(e) => this.handleOnOptional(e)}
optionalFieldCheckbox
isChecked={this.state.enableOptionalField}
checkboxMessage={intl.formatMessage(messages['support.education.research'])}
/>
) : null}
{ this.state.enableOptionalField ? this.getOptionalFields() : null }
<StatefulButton
type="submit"
variant="brand"

View File

@@ -145,6 +145,21 @@ describe('RegistrationPageTests', () => {
expect(registrationPage.find('select#gender').length).toEqual(1);
});
it('should not show optional field check if process env has empty optional fields list', () => {
mergeConfig({
REGISTRATION_OPTIONAL_FIELDS: '',
});
let registrationPage = mount(reduxWrapper(<IntlRegistrationPage {...props} />));
expect(registrationPage.find('input#optional').length).toEqual(0);
mergeConfig({
REGISTRATION_OPTIONAL_FIELDS: 'gender goals level_of_education year_of_birth',
});
registrationPage = mount(reduxWrapper(<IntlRegistrationPage {...props} />));
expect(registrationPage.find('input#optional').length).toEqual(1);
});
it('should dispatch fetchRealtimeValidations on Blur after frontend validations ', () => {
const formPayload = {
email: '',