card-games-utils
Version:
Utility package for card games
57 lines (56 loc) • 2.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var StandardDeckEnum_1 = require("../constants/StandardDeckEnum");
var StandardDeck_1 = require("../data/StandardDeck");
var CardDeck_1 = require("../models/CardDeck");
describe('test the CardDeck model and all methods in it', function () {
it('test shuffleCards() method', function () {
var cards = [];
var sampleCardNames = [
StandardDeckEnum_1.StandardCardName.CLUBS_ACE,
StandardDeckEnum_1.StandardCardName.CLUBS_TWO,
StandardDeckEnum_1.StandardCardName.CLUBS_THREE,
StandardDeckEnum_1.StandardCardName.CLUBS_FOUR,
StandardDeckEnum_1.StandardCardName.CLUBS_FIVE,
StandardDeckEnum_1.StandardCardName.CLUBS_SIX,
];
sampleCardNames.forEach(function (cardName) {
cards.push({
name: cardName,
color: StandardDeck_1.StandardDeck.getColor(cardName),
rank: StandardDeck_1.StandardDeck.getRank(cardName),
number: StandardDeck_1.StandardDeck.getNumber(cardName),
suite: StandardDeck_1.StandardDeck.getSuite(cardName),
});
});
var shuffledCards = CardDeck_1.CardDeck.shuffleCards(cards);
expect(Array.isArray(shuffledCards)).toBe(true);
expect(shuffledCards.length).toBe(sampleCardNames.length);
expect(cards).not.toMatchObject(shuffledCards);
});
it('test distributeCards() method', function () {
var sampleCardNames = [
StandardDeckEnum_1.StandardCardName.CLUBS_ACE,
StandardDeckEnum_1.StandardCardName.CLUBS_TWO,
StandardDeckEnum_1.StandardCardName.CLUBS_THREE,
StandardDeckEnum_1.StandardCardName.CLUBS_FOUR,
StandardDeckEnum_1.StandardCardName.CLUBS_FIVE,
StandardDeckEnum_1.StandardCardName.CLUBS_SIX,
StandardDeckEnum_1.StandardCardName.CLUBS_SEVEN,
StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT,
StandardDeckEnum_1.StandardCardName.CLUBS_NINE,
StandardDeckEnum_1.StandardCardName.CLUBS_TEN,
];
var totalCardCount = 10;
var playerCount = 2;
var cardPerPlayer = 3;
var distributedCards = CardDeck_1.CardDeck.distributeCards(sampleCardNames, playerCount, cardPerPlayer, true);
expect(Array.isArray(distributedCards)).toBe(true);
expect(distributedCards.length).toBe(2);
expect(Array.isArray(distributedCards[0])).toBe(true);
expect(distributedCards[0].length).toBe(playerCount);
expect(distributedCards[0].every(function (cardGroup) { return cardGroup.length === cardPerPlayer; })).toBe(true);
expect(Array.isArray(distributedCards[1])).toBe(true);
expect(distributedCards[1].length).toBe(totalCardCount - playerCount * cardPerPlayer);
});
});