Skip to content

Commit 8adf134

Browse files
committed
refactor code for more descriptive error messages
1 parent e2a6053 commit 8adf134

File tree

1 file changed

+4
-10
lines changed

1 file changed

+4
-10
lines changed

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

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,24 +24,19 @@
2424
function getCardValue(card) {
2525
const validSuits = ["♠", "♥", "♦", "♣"];
2626
if (typeof card !== "string")
27-
throw new Error(
28-
`Invalid card format: "${card}". Expected rank followed by suit, for example A♠, 10♥, K♦, or 7♣.`
29-
);
27+
throw new Error(`Invalid card format: "${card}". Expected a string.`);
3028

3129
let cardSuit = card.slice(-1);
3230
let cardRank = card.slice(0, -1);
3331

34-
if (validSuits.find((suit) => suit === cardSuit)) {
35-
console.log(cardSuit);
32+
if (validSuits.includes(cardSuit)) {
3633
switch (cardRank) {
3734
case "A":
38-
console.log(cardRank, "ace rank");
3935
return 11;
4036

4137
case "J":
4238
case "Q":
4339
case "K":
44-
console.log(cardRank, "face rank");
4540
return 10;
4641

4742
case "2":
@@ -53,17 +48,16 @@ function getCardValue(card) {
5348
case "8":
5449
case "9":
5550
case "10":
56-
console.log(cardRank, "number rank");
5751
return Number(cardRank);
5852

5953
default:
6054
throw new Error(
61-
`Invalid card format: "${card}". Expected rank followed by suit, for example A♠, 10♥, K♦, or 7♣.`
55+
`Invalid card format: "${card}" has an invalid rank "${cardRank}". Expected one of: A, 2–10, J, Q, K.`
6256
);
6357
}
6458
} else
6559
throw new Error(
66-
`Invalid card format: "${card}". Expected rank followed by suit, for example A♠, 10♥, K♦, or 7♣.`
60+
`Invalid card format: "${card}" has an invalid suit "${cardSuit}". Expected one of: ♠, ♥, ♦, ♣.`
6761
);
6862
}
6963

0 commit comments

Comments
 (0)