Skip to content

Commit c7533d7

Browse files
Apply changes commented by the reviewer
1 parent 8031109 commit c7533d7

3 files changed

Lines changed: 20 additions & 28 deletions

File tree

Sprint-3/4-stretch/card-validator.js

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,11 @@ function creditCardValidator(cardNum) {
66
if (cardNumArray.length !== 16) return false;
77

88
// checks if all digits are numbers
9-
if (
10-
!cardNumArray.every(
11-
(num) => num.charCodeAt(0) >= 48 && num.charCodeAt(0) <= 57
12-
)
13-
)
14-
return false;
9+
if (!cardNumArray.every((num) => num >= 0 && num <= 9)) return false;
1510

1611
// Checks if there are at least two different digits
17-
const count = cardNumArray.reduce((acc, curr) => {
18-
acc[curr] = acc[curr] ? acc[curr] + 1 : 1;
19-
return acc;
20-
}, {});
21-
if (Object.keys(count).length < 2) return false;
12+
const count = new Set(cardNumArray);
13+
if (count.size < 2) return false;
2214

2315
// Checks if the sum of all digits is greater than 16
2416
const sumOfDigits = cardNumArray.reduce((acc, curr) => acc + Number(curr), 0);
@@ -28,3 +20,4 @@ function creditCardValidator(cardNum) {
2820
if (cardNumArray[cardNumArray.length - 1] % 2 !== 0) return false;
2921
return true;
3022
}
23+
console.log(creditCardValidator("1111111111111111"));

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
const previousPasswords = ["5B43n21"];
2-
function passwordValidator(password) {
1+
function passwordValidator(password, previousPasswords = []) {
32
if (password.length < 5) return false;
43
if (previousPasswords.includes(password)) return false;
54
previousPasswords.push(password);

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

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,52 +15,52 @@ 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-
test("password has at least 5 characters", () => {
18+
test("should return false if password has fewer than 5 characters", () => {
1919
// Arrange
20-
const password = "A1b2";
20+
const password = "A1b&";
2121
// Act
2222
const result = isValidPassword(password);
2323
// Assert
2424
expect(result).toEqual(false);
2525
});
2626

27-
test("password is not previously used", () => {
27+
test("should return false if password was previously used", () => {
2828
// Arrange
29-
const password = "5B43n21";
29+
const password = "5B43n21!";
3030
// Act
31-
const result = isValidPassword(password);
31+
const result = isValidPassword(password, "5B43n21!");
3232
// Assert
3333
expect(result).toEqual(false);
3434
});
3535

36-
test("password contains at least one uppercase English letter", () => {
36+
test("should return false if password does not contain an uppercase English letter", () => {
3737
// Arrange
38-
const password = "1a2345";
38+
const password = "1a2345&";
3939
// Act
4040
const result = isValidPassword(password);
4141
// Assert
4242
expect(result).toEqual(false);
4343
});
4444

45-
test("password contains at least one uppercase English letter", () => {
45+
test("should return false if password does not contain an lowercase English letter", () => {
4646
// Arrange
47-
const password = "1B2345";
47+
const password = "1B2345%";
4848
// Act
4949
const result = isValidPassword(password);
5050
// Assert
5151
expect(result).toEqual(false);
5252
});
5353

54-
test("password contains at least one number(0-9)", () => {
54+
test("should return false if password has no numbers(0-9)", () => {
5555
// Arrange
56-
const password = "sdkerjJNGk";
56+
const password = "se!rjJN%Gk";
5757
// Act
5858
const result = isValidPassword(password);
5959
// Assert
6060
expect(result).toEqual(false);
6161
});
6262

63-
test('password contains at least one of "!", "#", "$", "%", ".", "*", "&"', () => {
63+
test('should return false if password has no special characters including "!", "#", "$", "%", ".", "*", "&"', () => {
6464
// Arrange
6565
const password = "sdkerjJNG23k";
6666
// Act
@@ -69,11 +69,11 @@ test('password contains at least one of "!", "#", "$", "%", ".", "*", "&"', () =
6969
expect(result).toEqual(false);
7070
});
7171

72-
test("password meets all the condition for a valid password and passwordValidator returns true", () => {
72+
test("should return true if password meets all validation rules", () => {
7373
// Arrange
74-
const password = "sdkerjJNG23k&";
74+
const password = "sdkerj!JNG23k&";
7575
// Act
76-
const result = isValidPassword(password);
76+
const result = isValidPassword(password, ["se!rjJN%G6k", "1B2h345%a"]);
7777
// Assert
7878
expect(result).toEqual(true);
7979
});

0 commit comments

Comments
 (0)