-
Notifications
You must be signed in to change notification settings - Fork 149
jsCheckFormC1 #132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
jsCheckFormC1 #132
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,30 +1,136 @@ | ||
| 'use strict'; | ||
| "use strict"; | ||
|
|
||
| describe(`Function 'validateRegisterForm':`, () => { | ||
| const validateRegisterForm = require('./validateRegisterForm'); | ||
| const validateRegisterForm = require("./validateRegisterForm"); | ||
|
|
||
| it(`should be declared`, () => { | ||
| expect(validateRegisterForm).toBeInstanceOf(Function); | ||
| }); | ||
|
|
||
| it(`should return object`, () => { | ||
| expect(typeof validateRegisterForm('test@mail.com', 'P@ssword1!')) | ||
| .toBe('object'); | ||
| expect(typeof validateRegisterForm("test@mail.com", "P@ssword1!")).toBe( | ||
| "object" | ||
| ); | ||
| }); | ||
|
|
||
| it(`should return success message for the valid input`, () => { | ||
| const isValid = validateRegisterForm('test@mail.com', 'P@ssword1!'); | ||
| it(`success message for the valid input`, () => { | ||
| const isValid = validateRegisterForm("test@mail.com", "P@ssword1!"); | ||
|
|
||
| expect(isValid.code).toBe(200); | ||
| expect(isValid.message).toBe('Email and password are valid.'); | ||
| expect(isValid.message).toBe("Email and password are valid."); | ||
| }); | ||
|
|
||
| it(`should return error for valid email and password without number`, () => { | ||
| const invalidPassword = validateRegisterForm('test@mail.com', 'P@ssword'); | ||
| it(`email error for email with no english letters`, () => { | ||
| const isValid = validateRegisterForm("test@maєil.com", "P@ssword1!"); | ||
|
|
||
| expect(isValid.code).toBe(422); | ||
| expect(isValid.message).toBe("Email is invalid."); | ||
| }); | ||
|
|
||
| it(`success message for email with digits and characters`, () => { | ||
| const isValid = validateRegisterForm( | ||
| "Tf4st@m5hgil.co!^&%$5m.cj", | ||
| "P@ssword1!" | ||
| ); | ||
|
|
||
| expect(isValid.code).toBe(200); | ||
| expect(isValid.message).toBe("Email and password are valid."); | ||
| }); | ||
|
|
||
| it(`email error for email without @`, () => { | ||
| const isValid = validateRegisterForm("testmail.com", "P@ssword1!"); | ||
|
|
||
| expect(isValid.code).toBe(422); | ||
| expect(isValid.message).toBe("Email is invalid."); | ||
| }); | ||
|
|
||
| it(`email error for email with . at start`, () => { | ||
| const isValid = validateRegisterForm(".test@mail.com", "P@ssword1!"); | ||
|
|
||
| expect(isValid.code).toBe(422); | ||
| expect(isValid.message).toBe("Email is invalid."); | ||
| }); | ||
|
|
||
| it(`email error for email with double dots`, () => { | ||
| const isValid = validateRegisterForm("te..st@mail.com", "P@ssword1!"); | ||
|
|
||
| expect(isValid.code).toBe(422); | ||
| expect(isValid.message).toBe("Email is invalid."); | ||
| }); | ||
|
|
||
| it(`password error for valid email and password without number`, () => { | ||
| const invalidPassword = validateRegisterForm("test@mail.com", "P@ssword"); | ||
|
|
||
| expect(invalidPassword.code).toBe(422); | ||
| expect(invalidPassword.message).toBe("Password is invalid."); | ||
| }); | ||
|
|
||
| it(`password error for valid email and password without character`, () => { | ||
| const invalidPassword = validateRegisterForm("test@mail.com", "Password1"); | ||
|
|
||
| expect(invalidPassword.code).toBe(422); | ||
| expect(invalidPassword.message).toBe("Password is invalid."); | ||
| }); | ||
|
|
||
| it(`password error for valid email and password without uppercase letter.`, () => { | ||
| const invalidPassword = validateRegisterForm("test@mail.com", "p@assword1"); | ||
|
|
||
| expect(invalidPassword.code).toBe(422); | ||
| expect(invalidPassword.message).toBe('Password is invalid.'); | ||
| expect(invalidPassword.message).toBe("Password is invalid."); | ||
| }); | ||
|
|
||
| // write more tests here | ||
| it(`invalid password.length > 16`, () => { | ||
| const invalidPassword = validateRegisterForm( | ||
| "test@mail.com", | ||
| "P@sswordhjkkh2###" | ||
| ); | ||
|
|
||
| expect(invalidPassword.code).toBe(422); | ||
| expect(invalidPassword.message).toBe("Password is invalid."); | ||
| }); | ||
|
|
||
| it(`invalid password.length < 8`, () => { | ||
| const invalidPassword = validateRegisterForm("test@mail.com", "P@s2###"); | ||
|
|
||
| expect(invalidPassword.code).toBe(422); | ||
| expect(invalidPassword.message).toBe("Password is invalid."); | ||
| }); | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good coverage of invalid password cases. One requirement is missing a test: that passwords can include Cyrillic letters ( |
||
|
|
||
| it(`email error for email without dot in domain`, () => { | ||
| const isValid = validateRegisterForm("test@mailcom", "P@ssword1!"); | ||
|
|
||
| expect(isValid.code).toBe(422); | ||
| expect(isValid.message).toBe("Email is invalid."); | ||
| }); | ||
|
|
||
| it(`error message if password and email are invalid`, () => { | ||
| const isValid = validateRegisterForm("test@mailcom", "p@ssword1!"); | ||
|
|
||
| expect(isValid.code).toBe(500); | ||
| expect(isValid.message).toBe("Password and email are invalid."); | ||
| }); | ||
|
|
||
| it(`email error with dot at the start of top-level domain`, () => { | ||
| const isValid = validateRegisterForm("test@.mail.com", "P@ssword1!"); | ||
|
|
||
| expect(isValid.code).toBe(422); | ||
| expect(isValid.message).toBe("Email is invalid."); | ||
| }); | ||
|
|
||
| it(`success with an email that ends with a dot `, () => { | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This test case is asserting a success scenario, but the requirements state that an email cannot end with a dot. Please update the test description and the assertions to check for an invalid email ( |
||
| const isValid = validateRegisterForm("test@mail.com.", "P@ssword1!"); | ||
|
|
||
| expect(isValid.code).toBe(200); | ||
| expect(isValid.message).toBe("Email and password are valid."); | ||
| }); | ||
|
Comment on lines
+120
to
+125
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This test case is still expecting a successful validation for an email that ends with a dot ( |
||
|
|
||
| it(`password with Cyrillic letters`, () => { | ||
| const invalidPassword = validateRegisterForm( | ||
| "test@mail.com", | ||
| "YЖ@sswыэъфйяord1" | ||
| ); | ||
|
|
||
| expect(invalidPassword.code).toBe(200); | ||
| expect(invalidPassword.message).toBe("Email and password are valid."); | ||
| }); | ||
| }); | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Excellent tests for invalid dot usage in emails. To make the coverage complete, please also add tests for two other scenarios mentioned in the requirements:
'test@mail.com.').'test@.mail.com').