Skip to content

Commit 5a9a703

Browse files
committed
made the password validator function, all validations finished and tested
1 parent 8f3d6cf commit 5a9a703

File tree

2 files changed

+107
-3
lines changed

2 files changed

+107
-3
lines changed
Lines changed: 66 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,70 @@
11
function passwordValidator(password) {
2-
return password.length < 5 ? false : true
2+
let index = 0;
3+
let characters = "abcdefghijklmnopqrstuvwxyz";
4+
let checker = false;
5+
if (password.length < 5) {
6+
return false;
7+
}
8+
while (index <= password.length) {
9+
if (characters.toUpperCase().includes(password[index])) {
10+
checker = true;
11+
}
12+
index++;
13+
}
14+
if(checker == false)
15+
return false;
16+
17+
checker = false;
18+
index = 0;
19+
while (index <= password.length) {
20+
if (characters.includes(password[index])) {
21+
checker = true;
22+
}
23+
index++;
24+
}
25+
if(checker == false)
26+
return false;
27+
28+
checker = false;
29+
index = 0;
30+
while (index <= password.length) {
31+
if ("0123456789".includes(password[index])) {
32+
checker = true;
33+
}
34+
index++;
35+
}
36+
if(checker == false)
37+
return false;
38+
39+
checker = false;
40+
index = 0;
41+
while (index <= password.length) {
42+
if ("!#$%.*&".includes(password[index])) {
43+
checker = true;
44+
}
45+
index++;
46+
}
47+
if(checker == false)
48+
return false;
49+
50+
index = 0;
51+
while (index <= passwordsArray.length) {
52+
if (passwordsArray[index] === password) {
53+
return false;
54+
}
55+
index++;
56+
}
57+
58+
return checker;
359
}
460

61+
const passwordsArray = [];
62+
passwordsArray.push("123HowAreYou?");
63+
passwordsArray.push("ahmed@pass1");
64+
passwordsArray.push("123JohnIsHere#");
65+
passwordsArray.push("This_is_my_password?");
66+
passwordsArray.push("!!I_Am_Sam_Movie!!1");
67+
68+
module.exports = passwordValidator;
569

6-
module.exports = passwordValidator;
70+
//console.log(passwordValidator("setrwcrat!ahmddAed@pass1"));

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

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,50 @@ You must breakdown this problem in order to solve it. Find one test case first a
1717
const isValidPassword = require("./password-validator");
1818
test("password has at least 5 characters", () => {
1919
// Arrange
20-
const password = "12345";
20+
const password = "1!Hel";
2121
// Act
2222
const result = isValidPassword(password);
2323
// Assert
2424
expect(result).toEqual(true);
2525
}
26+
);
27+
28+
test("Have at least one English uppercase letter (A-Z)", () => {
29+
// Arrange
30+
const password = "1!HelloWorld_A";
31+
// Act
32+
const result = isValidPassword(password);
33+
// Assert
34+
expect(result).toEqual(true);
35+
}
36+
);
37+
38+
test("Have at least one English lowercase letter (a-z)", () => {
39+
// Arrange
40+
const password = "1!HelloWorld_a";
41+
// Act
42+
const result = isValidPassword(password);
43+
// Assert
44+
expect(result).toEqual(true);
45+
}
46+
);
47+
48+
test("Have at least one number (0-9)", () => {
49+
// Arrange
50+
const password = "1!HelloWorld_1";
51+
// Act
52+
const result = isValidPassword(password);
53+
// Assert
54+
expect(result).toEqual(true);
55+
}
56+
);
57+
58+
test(`Have at least one of the following non-alphanumeric symbols: ("!", "#", "$", "%", ".", "*", "&")`, () => {
59+
// Arrange
60+
const password = "!!I_Am_Sam_Movie!!1";
61+
// Act
62+
const result = isValidPassword(password);
63+
// Assert
64+
expect(result).toEqual(false);
65+
}
2666
);

0 commit comments

Comments
 (0)