Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 105 additions & 12 deletions src/validateRegisterForm.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,117 @@ describe(`Function 'validateRegisterForm':`, () => {
expect(validateRegisterForm).toBeInstanceOf(Function);
});

it(`should return object`, () => {
expect(typeof validateRegisterForm('test@mail.com', 'P@ssword1!'))
.toBe('object');
it(`should return an object`, () => {
const result = validateRegisterForm('test@mail.com', 'P@ssword1!');

expect(typeof result).toBe('object');
});

it(`should return success for valid email and valid password`, () => {
const result = validateRegisterForm('test@mail.com', 'P@ssword1!');

expect(result).toEqual({
code: 200,
message: 'Email and password are valid.',
});
});

it(`should return error for valid email and invalid password`, () => {
const result = validateRegisterForm('test@mail.com', 'P@ssword');

expect(result).toEqual({
code: 422,
message: 'Password is invalid.',
});
});

it(`should return error for invalid email and valid password`, () => {
const result = validateRegisterForm('test@com', 'P@ssword1!');

expect(result).toEqual({
code: 422,
message: 'Email is invalid.',
});
});

it(`should return error for invalid email and invalid password`, () => {
const result = validateRegisterForm('test@com', 'ssword1');

expect(result).toEqual({
code: 500,
message: 'Password and email are invalid.',
});
});

it(`should return error for email without '@'`, () => {
const result = validateRegisterForm('testmail.com', 'P@ssword1!');

expect(result).toEqual({
code: 422,
message: 'Email is invalid.',
});
});

it(`should return error for email starting with dot`, () => {
const result = validateRegisterForm('.test@mail.com', 'P@ssword1!');

expect(result).toEqual({
code: 422,
message: 'Email is invalid.',
});
});

it(`should return success message for the valid input`, () => {
const isValid = validateRegisterForm('test@mail.com', 'P@ssword1!');
it(`should return error for email with double dots`, () => {
const result = validateRegisterForm('test..mail@mail.com', 'P@ssword1!');

expect(isValid.code).toBe(200);
expect(isValid.message).toBe('Email and password are valid.');
expect(result).toEqual({
code: 422,
message: 'Email is invalid.',
});
});

it(`should return error for valid email and password without number`, () => {
const invalidPassword = validateRegisterForm('test@mail.com', 'P@ssword');
it(`should return error for password without uppercase letter`, () => {
const result = validateRegisterForm('test@mail.com', 'p@ssword1');

expect(invalidPassword.code).toBe(422);
expect(invalidPassword.message).toBe('Password is invalid.');
expect(result).toEqual({
code: 422,
message: 'Password is invalid.',
});
});

// write more tests here
it(`should return error for password without digit`, () => {
const result = validateRegisterForm('test@mail.com', 'P@ssword!');

expect(result).toEqual({
code: 422,
message: 'Password is invalid.',
});
});

it(`should return error for password without special character`, () => {
const result = validateRegisterForm('test@mail.com', 'Password1');

expect(result).toEqual({
code: 422,
message: 'Password is invalid.',
});
});

it(`should return error for password that is too short`, () => {
const result = validateRegisterForm('test@mail.com', 'P@1a');

expect(result).toEqual({
code: 422,
message: 'Password is invalid.',
});
});

it(`should return error for password that is too long`, () => {
const result = validateRegisterForm('test@mail.com', 'P@ssword123456789!');

expect(result).toEqual({
code: 422,
message: 'Password is invalid.',
});
});
});