UNPKG

card-games-utils

Version:
57 lines (56 loc) 2.91 kB
"use strict"; 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); }); });