fix: email validation (#118)

* fix: email validation

* feat: Test Email Validation
This commit is contained in:
Tejaaswini Narendra 2020-07-23 17:58:26 +05:30 committed by GitHub
parent 2ac009678e
commit ea7403ab06
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 44 additions and 1 deletions

View File

@ -0,0 +1,43 @@
import { isEmail } from "./formhelpers";
describe("isEmail test", () => {
it("Check whether the valid emails are recognized as valid", () => {
const validEmails = [
"appsmith@yahoo.com",
"appsmith-100@yahoo.com",
"appsmith.100@yahoo.com",
"appsmith111@appsmith.com",
"appsmith-100@appsmith.net",
"appsmith.100@appsmith.com.au",
"appsmith@1.com",
"appsmith@gmail.com.com",
"appsmith+100@gmail.com",
"appsmith-100@yahoo-test.com",
];
validEmails.forEach(validEmail => {
expect(isEmail(validEmail)).toBeTruthy();
});
});
it("Check whether the invalid emails are recognized as invalid", () => {
const invalidEmails = [
"appsmith",
"appsmith@.com.my",
"appsmith123@gmail.a",
"appsmith123@.com",
"appsmith123@.com.com",
".appsmith@appsmith.com",
"appsmith()*@gmail.com",
"appsmith@%*.com",
"appsmith..2002@gmail.com",
"appsmith.@gmail.com",
"appsmith@appsmith@gmail.com",
"appsmith@gmail.com.1a",
];
invalidEmails.forEach(invalidEmail => {
expect(isEmail(invalidEmail)).toBeFalsy();
});
});
});

View File

@ -14,6 +14,6 @@ export const isStrongPassword = (value: string) => {
// TODO (abhinav): Use a regex which adheres to standards RFC5322
export const isEmail = (value: string) => {
const re = /^([A-Za-z0-9_\-.])+@([A-Za-z0-9_\-.])+.([A-Za-z]{2,5})$/;
const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(value);
};