Skip to content

Commit de4bc3e

Browse files
committed
Password-validator implemented and tested.
1 parent 3910418 commit de4bc3e

File tree

2 files changed

+63
-2
lines changed

2 files changed

+63
-2
lines changed

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
function passwordValidator(password) {
2-
return password.length < 5 ? false : true
2+
// return password.length < 5 ? false : true
3+
4+
return (password.length < 5 &&
5+
/[A-Za-z]/.test(password)&&
6+
/[! # $ % .* &]/.test(password)&&
7+
/[0-9]/.test(password)&&
8+
!previousPasswords.includes(password)
9+
);
310
}
411

512

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

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ To be valid, a password must:
1515
You must breakdown this problem in order to solve it. Find one test case first and get that working
1616
*/
1717
const isValidPassword = require("./password-validator");
18+
1819
test("password has at least 5 characters", () => {
1920
// Arrange
2021
const password = "12345";
@@ -23,4 +24,57 @@ test("password has at least 5 characters", () => {
2324
// Assert
2425
expect(result).toEqual(true);
2526
}
26-
);
27+
);
28+
29+
//
30+
test("password has at least one English uppercase letter (A-Z)", () => {
31+
// Arrange
32+
const password = "A2345";
33+
// Act
34+
const result = isValidPassword(password);
35+
// Assert
36+
expect(result).toEqual(true);
37+
}
38+
);
39+
40+
//
41+
test("password has least one English lowercase letter (a-z)", () => {
42+
// Arrange
43+
const password = "Da2345";
44+
// Act
45+
const result = isValidPassword(password);
46+
// Assert
47+
expect(result).toEqual(true);
48+
}
49+
);
50+
51+
//
52+
test("password has at least one number 0-9)", () => {
53+
// Arrange
54+
const password = "Cz!345";
55+
// Act
56+
const result = isValidPassword(password);
57+
// Assert
58+
expect(result).toEqual(true);
59+
}
60+
);
61+
62+
test("password has at least one non-alphanumeric symbols: !, #, $, %, ., *, &)", () => {
63+
// Arrange
64+
const password = "Cz!345";
65+
// Act
66+
const result = isValidPassword(password);
67+
// Assert
68+
expect(result).toEqual(true);
69+
}
70+
);
71+
72+
//
73+
test("password must not be a previous password", () => {
74+
const previousPasswords = ["Mmd1!", "XyZ2$", "Test10%"];
75+
const password = "Mmd1";
76+
const result = isValidPassword(password, previousPasswords);
77+
expect(result).toEqual(false);
78+
});
79+
80+
// Password-validator implemented and tested.

0 commit comments

Comments
 (0)