Skip to content

Commit 801f259

Browse files
refactor password validation logic and enhance test coverage for various password criteria
1 parent 463d531 commit 801f259

File tree

2 files changed

+62
-4
lines changed

2 files changed

+62
-4
lines changed
Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,30 @@
11
function passwordValidator(password) {
2-
return password.length < 5 ? false : true
2+
//console.log(password !== password.toUpperCase());
3+
let password2=password.split("")
4+
console.log(password2);
5+
let newPassword=[];
6+
// if (
7+
// password.length >= 5 &&
8+
// password !== password.toLowerCase() &&
9+
// password !== password.toUpperCase()
10+
11+
// ) {
12+
// return true;
13+
// }
14+
for(element of password2){
15+
if (
16+
password2.length >= 5 &&
17+
/[A-Za-z]/.test(password2)
18+
19+
) {
20+
return true;
21+
}
22+
}
23+
24+
return false;
325
}
426

527

6-
module.exports = passwordValidator;
28+
console.log(passwordValidator("434398866"));
29+
30+
module.exports = passwordValidator;

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

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,46 @@ 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
20-
const password = "12345";
21+
const password = "As?123";
2122
// Act
2223
const result = isValidPassword(password);
2324
// Assert
2425
expect(result).toEqual(true);
2526
}
26-
);
27+
);
28+
test("password has at least 5 characters", () => {
29+
const password = "As?3";
30+
const result = isValidPassword(password);
31+
expect(result).toEqual(false);
32+
});
33+
34+
test("password has at least one English uppercase letter (A-Z)", () => {
35+
const password = "As?123";
36+
const result = isValidPassword(password);
37+
expect(result).toEqual(true);
38+
});
39+
test("password has at least one English uppercase letter (A-Z)", () => {
40+
const password = "s?123";
41+
const result = isValidPassword(password);
42+
expect(result).toEqual(false);
43+
});
44+
45+
test("password has at least one English lowercase letter (a-z)", () => {
46+
const password = "'aK763";
47+
const result = isValidPassword(password);
48+
expect(result).toEqual(true);
49+
});
50+
test("password has at least one English lowercase letter (a-z)", () => {
51+
const password = "QWE<25365";
52+
const result = isValidPassword(password);
53+
expect(result).toEqual(false);
54+
});
55+
56+
test("password has at least one number 0-9", () => {
57+
const password = "QWE<25365";
58+
const result = isValidPassword(password);
59+
expect(result).toEqual(true);
60+
});

0 commit comments

Comments
 (0)