diff --git a/assets/js/__test__/components/CompanyRegisterModal-test.jsx b/assets/js/__test__/components/CompanyRegisterModal-test.jsx new file mode 100644 index 0000000000000000000000000000000000000000..e0fdec4f3327d596f21f013076bdb9c1d64590ba --- /dev/null +++ b/assets/js/__test__/components/CompanyRegisterModal-test.jsx @@ -0,0 +1,27 @@ +import React from 'react'; +import ReactTestUtils from 'react-addons-test-utils'; +import CompanyRegisterModal from '../../components/CompanyRegisterModal'; + +describe('CompanyRegisterModal', () => { + function validatePassword(password) { + const lowerCaseLetters = /[a-z]/g; + const upperCaseLetters = /[A-Z]/g; + const numbers = /[0-9]/g; + if(password.length < 8) return "Password less than 8"; else + if(!lowerCaseLetters.test(password)) return "Password at least one lowercase letter"; else + if(!upperCaseLetters.test(password)) return "Password at least one uppercase letter"; else + if(!numbers.test(password)) return "Password at least one number"; + else return true + } + + it('renders without problem', () => { + const companyRegister = ReactTestUtils.renderIntoDocument( + <CompanyRegisterModal />); + expect(companyRegister).to.exist; + }); + + it('handle password validation', () => { + const password = '3s24Aasd'; + expect(validatePassword(password)).to.equal(true); + }); +}); diff --git a/assets/js/components/CompanyRegisterModal.jsx b/assets/js/components/CompanyRegisterModal.jsx index 7843895128f8806c4c50b64e88f8ac3533109822..04cd735b29818ddd2c622968b9a118d66ad69475 100644 --- a/assets/js/components/CompanyRegisterModal.jsx +++ b/assets/js/components/CompanyRegisterModal.jsx @@ -66,6 +66,9 @@ export default class CompanyRegisterModal extends React.Component { handlePassword = (e) => { if (e.target.name === 'password') this.passwordField = e.target; else if (e.target.name === 'password-confirm') this.passwordConfirmField = e.target; + const validatePassword = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}/g; + if(!validatePassword.test(this.passwordField.value)) this.passwordField.setCustomValidity("Must contain at least one number and one uppercase and lowercase letter, and at least 8 or more characters"); + else this.passwordField.setCustomValidity(""); const isExist = this.passwordField && this.passwordConfirmField; if (isExist) { if (this.passwordField.value !== this.passwordConfirmField.value) {