Skip to content

Commit 195accb

Browse files
create for invalid also
1 parent 647288e commit 195accb

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

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

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,19 @@
2424
// execute the code to ensure all tests pass.
2525

2626
export function getCardValue(card) {
27-
const value = card.slice(0, 1);
27+
const errorMessage = `Expected a number followed by a suit, but got "${card}"`;
28+
29+
if (typeof card !== "string") {
30+
throw new Error(errorMessage);
31+
}
32+
33+
const value = card.slice(0, -1);
34+
const suit = card.slice(-1);
35+
36+
if (!["♠", "♥", "♦", "♣"].includes(suit)) {
37+
throw new Error(errorMessage);
38+
}
39+
2840
if (value === "A") {
2941
return 11;
3042
} else if (value === "J") {
@@ -33,10 +45,10 @@ export function getCardValue(card) {
3345
return 10;
3446
} else if (value === "K") {
3547
return 10;
36-
} else if (Number(value) >= "2" && Number(value) <= "10") {
48+
} else if (["2", "3", "4", "5", "6", "7", "8", "9", "10"].includes(value)) {
3749
return Number(value);
3850
} else {
39-
return NaN;
51+
throw new Error(errorMessage);
4052
}
4153
}
42-
// console.log(getCardValue("2♠"));
54+
console.log(getCardValue("10♠"));

0 commit comments

Comments
 (0)