Skip to content

Commit f438971

Browse files
committed
Implementing password validation with regex rules
1 parent 0d3fde4 commit f438971

File tree

2 files changed

+49
-12
lines changed

2 files changed

+49
-12
lines changed
Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,28 @@
1+
const oldPassword = ["Asasu.12345", "Ha#999"];
12
function passwordValidator(password) {
2-
return password.length < 5 ? false : true
3-
}
4-
3+
if (password.length < 5) {
4+
return false;
5+
}
6+
const hasUppercase = /[A-Z]/.test(password);
7+
if (!hasUppercase) {
8+
return false;
9+
}
10+
const hasLowercase = /[a-z]/.test(password);
11+
if (!hasLowercase) {
12+
return false;
13+
}
14+
const hasaNum = /[0-9]/.test(password);
15+
if (!hasaNum) {
16+
return false;
17+
}
18+
const hasSpecial = /[!#$%.*&]/.test(password);
19+
if (!hasSpecial) {
20+
return false;
21+
}
522

6-
module.exports = passwordValidator;
23+
if (oldPassword.includes(password)) {
24+
return false;
25+
}
26+
return true;
27+
}
28+
module.exports = passwordValidator;

Sprint-3/3-stretch/password-validator.test.js

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,26 @@ You must breakdown this problem in order to solve it. Find one test case first a
1616
*/
1717
const isValidPassword = require("./password-validator");
1818
test("password has at least 5 characters", () => {
19-
// Arrange
20-
const password = "12345";
21-
// Act
22-
const result = isValidPassword(password);
23-
// Assert
24-
expect(result).toEqual(true);
25-
}
26-
);
19+
// Arrange
20+
const password = "As.2";
21+
// Act
22+
const result = isValidPassword(password);
23+
// Assert
24+
expect(result).toEqual(false);
25+
});
26+
test("Given valid password should return true", () => {
27+
// Arrange
28+
const password = "Wdsd.77";
29+
// Act
30+
const result = isValidPassword(password);
31+
// Assert
32+
expect(result).toBe(true);
33+
});
34+
test("password Must not be any previous password in the passwords array", () => {
35+
// Arrange
36+
const password = "Ha#999";
37+
// Act
38+
const result = isValidPassword(password);
39+
// Assert
40+
expect(result).toBe(false);
41+
});

0 commit comments

Comments
 (0)