Skip to content

Commit d1394c1

Browse files
committed
Rewrite test with jest completed
1 parent 0ee00b9 commit d1394c1

File tree

4 files changed

+80
-5
lines changed

4 files changed

+80
-5
lines changed

Sprint-3/1-implement-and-rewrite-tests/implement/3-get-card-value.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"
99
// The suit can be one of the following emojis:
1010
// "♠", "♥", "♦", "♣"
11-
// For example: "A♠", "2♥", "10♥", "J", "Q♦", "K♦".
11+
// For example: "A♠", "2♥", "10♥", "J"2♠"", "Q♦", "K♦".
1212

1313
// When the card is an ace ("A"), the function should return 11.
1414
// When the card is a face card ("J", "Q", "K"), the function should return 10.
@@ -28,7 +28,7 @@ function getCardValue(card) {
2828
!card.includes("♦") &&
2929
!card.includes("♣")
3030
){
31-
return "Invalid String";
31+
throw new Error("Invalid String");
3232
}
3333
const rank = card.slice(0, -1);
3434

@@ -39,12 +39,12 @@ function getCardValue(card) {
3939
!card.includes("K") &&
4040
!(rank >= 2 && rank <= 10)
4141
) {
42-
return "Invalid String";
42+
throw new Error("Invalid String");
4343
}
4444

45-
if (card.includes("A")) {
45+
if (rank==="A") {
4646
return 11;
47-
} else if (card.includes("J") || card.includes("Q") || card.includes("K")) {
47+
} else if (rank==="J" || rank==="Q" || rank==="K") {
4848
return 10;
4949
} else if (rank >= 2 && rank <= 10) {
5050
return rank;
@@ -77,6 +77,7 @@ assertEquals(getCardValue(" 6 ♠"), "Invalid String");
7777
assertEquals(getCardValue(" ♠"), "Invalid String");
7878
assertEquals(getCardValue(" **♠"), "Invalid String");
7979
assertEquals(getCardValue("10 **"), "Invalid String");
80+
assertEquals(getCardValue("A10♠"), "Invalid String");
8081

8182
// Handling invalid cards
8283
try {

Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/1-get-angle-type.test.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,40 @@ test(`should return "Acute angle" when (0 < angle < 90)`, () => {
1414
});
1515

1616
// Case 2: Right angle
17+
test(`should return "Right Angles" when(angle===90)`, () => {
18+
expect(getAngleType(90)).toEqual("Right angle");
19+
});
20+
1721
// Case 3: Obtuse angles
22+
23+
test(`should return "Obtuse angles" when (90< angle <180)`, () => {
24+
expect(getAngleType(91)).toEqual("Obtuse angle");
25+
expect(getAngleType(179)).toEqual("Obtuse angle");
26+
expect(getAngleType(160)).toEqual("Obtuse angle");
27+
expect(getAngleType(100)).toEqual("Obtuse angle");
28+
expect(getAngleType(151.55)).toEqual("Obtuse angle");
29+
});
30+
1831
// Case 4: Straight angle
32+
test(`should return "Straight angle" when (angle===180)`, () => {
33+
expect(getAngleType(180).toEqual("Straight angle"));
34+
});
35+
1936
// Case 5: Reflex angles
37+
test(`Should return "Reflex angle" when (180>angle<360)`, () => {
38+
expect(getAngleType(181)).toEqual("Reflex angle");
39+
expect(getAngleType(270)).toEqual("Reflex angle");
40+
expect(getAngleType(350)).toEqual("Reflex angle");
41+
expect(getAngleType(359.5)).toEqual("Reflex angle");
42+
expect(getAngleType(210)).toEqual("Reflex angle");
43+
expect(getAngleType(200)).toEqual("Reflex angle");
44+
});
45+
2046
// Case 6: Invalid angles
47+
test(`Should return "Invalid angle" when (0 =<angle>=360)`, () => {
48+
expect(getAngleType(0).toEqual("Invalid angle"));
49+
expect(getAngleType(-1).toEqual("Invalid angle"));
50+
expect(getAngleType(360).toEqual("Invalid angle"));
51+
expect(getAngleType(500).toEqual("Invalid angle"));
52+
expect(getAngleType("1e5").toEqual("Invalid angle"));
53+
});

Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/2-is-proper-fraction.test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,10 @@ const isProperFraction = require("../implement/2-is-proper-fraction");
77
// Special case: numerator is zero
88
test(`should return false when denominator is zero`, () => {
99
expect(isProperFraction(1, 0)).toEqual(false);
10+
expect(isProperFraction(1, -1)).toEqual(false);
11+
expect(isProperFraction(10, 1)).toEqual(false);
12+
expect(isProperFraction(1, 10)).toEqual(true);
13+
expect(isProperFraction(-1, 0)).toEqual(true);
14+
expect(isProperFraction(1e2, 1e4)).toEqual(true);
15+
expect(isProperFraction(1e4, 1e0)).toEqual(false);
1016
});

Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/3-get-card-value.test.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,44 @@ test(`Should return 11 when given an ace card`, () => {
1111

1212
// Suggestion: Group the remaining test data into these categories:
1313
// Number Cards (2-10)
14+
test(`should return Number from "2-10" when given a number card`,()=>{
15+
16+
expect(getCardValue("2♠")).toEqual(2);
17+
expect(getCardValue("3♠")).toEqual(3);
18+
expect(getCardValue("4♣")).toEqual(4);
19+
expect(getCardValue("5♠")).toEqual(5);
20+
expect(getCardValue("6♠")).toEqual(6);
21+
expect(getCardValue("7♣")).toEqual(7);
22+
expect(getCardValue("8♠")).toEqual(8);
23+
expect(getCardValue("9♠")).toEqual(9);
24+
expect(getCardValue("10♠")).toEqual(10);
25+
})
26+
27+
1428
// Face Cards (J, Q, K)
29+
30+
test(`Should return 10 when given a face card`,()=>{
31+
32+
expect(getCardValue("J♣")).toEqual(10);
33+
expect(getCardValue("K♣")).toEqual(10);
34+
expect(getCardValue("Q♣")).toEqual(10);
35+
expect(getCardValue("Q♠")).toEqual(10);
36+
expect(getCardValue("J♠")).toEqual(10);
37+
expect(getCardValue("K♠")).toEqual(10);
38+
})
1539
// Invalid Cards
1640

41+
test('throws on Invalid String', () => {
42+
expect(() => { getCardValue('A10♠');}).toThrow("Invalid String");
43+
expect(() => { getCardValue('A');}).toThrow("Invalid String");
44+
expect(() => { getCardValue('110♠');}).toThrow("Invalid String");
45+
expect(() => { getCardValue(' ♠');}).toThrow("Invalid String");
46+
expect(() => { getCardValue('eeeeeej1234');}).toThrow("Invalid String");
47+
48+
});
49+
50+
51+
1752
// To learn how to test whether a function throws an error as expected in Jest,
1853
// please refer to the Jest documentation:
1954
// https://jestjs.io/docs/expect#tothrowerror

0 commit comments

Comments
 (0)