Skip to content

Commit 5bc7e2b

Browse files
committed
Add tests to 4-stretch/card-validator.test.js
1 parent a043ba8 commit 5bc7e2b

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
const validateCard = require("./card-validator");
2+
3+
test("should have 16 digits, all numbers", () => {
4+
const cardNumber = 9999777788880000;
5+
const result = validateCard(cardNumber);
6+
expect(result).toBe("Valid card");
7+
});
8+
9+
test("should not have less than 16 digits", () => {
10+
const cardNumber = 99997777;
11+
const result = validateCard(cardNumber);
12+
expect(result).toBe("Invalid card");
13+
});
14+
15+
test("should have at least two different distinct digits", () => {
16+
const cardNumber = 9999777788880000;
17+
const result = validateCard(cardNumber);
18+
expect(result).toBe("Valid card");
19+
});
20+
21+
test("should have even final digit", () => {
22+
const cardNumber = 6666666666661666;
23+
const result = validateCard(cardNumber);
24+
expect(result).toBe("Valid card");
25+
});
26+
27+
test("total sum of numbers should be greater than 15", () => {
28+
const cardNumber = 6666666666661666;
29+
const result = validateCard(cardNumber);
30+
expect(result).toBe("Valid card");
31+
});
32+
33+
test("single repeating digit is invalid", () => {
34+
const cardNumber = 4444444444444444;
35+
const result = validateCard(cardNumber);
36+
expect(result).toBe("Invalid card");
37+
});
38+
39+
test("digits cannot include non numerals", () => {
40+
const cardNumber = "a92332119c011112";
41+
const result = validateCard(cardNumber);
42+
expect(result).toBe("Invalid card");
43+
});

0 commit comments

Comments
 (0)