diff --git a/static_src/test/unit/util/validators.spec.js b/static_src/test/unit/util/validators.spec.js index 333c3e0c..355ca78e 100644 --- a/static_src/test/unit/util/validators.spec.js +++ b/static_src/test/unit/util/validators.spec.js @@ -31,13 +31,23 @@ describe('validateEmail', function () { }); it('fails for none emails string@', function () { - const result = validator('domain@place'); + const result = validator('domain@'); + expect(result).toEqual({ message: 'The value entered is not a valid e-mail address' }); + }); + + it('fails for none emails string@domain.', function () { + const result = validator('domain@domain.'); expect(result).toEqual({ message: 'The value entered is not a valid e-mail address' }); }); it('fails for none emails string@string', function () { const result = validator('domain@place'); - expect(result).toEqual({ message: 'The value entered is not a valid e-mail address' }); + expect(result).toEqual(null); + }); + + it('fails for none emails string@string.com.co', function () { + const result = validator('domain@place'); + expect(result).toEqual(null); }); it('succeeds for email', function () { diff --git a/static_src/util/validators.js b/static_src/util/validators.js index 4bc87dad..379b5257 100644 --- a/static_src/util/validators.js +++ b/static_src/util/validators.js @@ -1,3 +1,5 @@ +const EMAIL_REGEX = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; + export function validateInteger(options) { const { max, min } = options || {}; return function _validateInteger(text) { @@ -41,7 +43,7 @@ export function validateString() { export function validateEmail() { return function _validateEmail(value, name) { - if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(value))) { + if (!(EMAIL_REGEX).test(value)) { const nameString = (name ? `in ${name} ` : ''); return { message: `The value entered ${nameString}is not a valid e-mail address`