UNPKG

card-games-utils

Version:
173 lines (172 loc) 12.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var StandardDeckEnum_1 = require("../constants/StandardDeckEnum"); var StandardCardHelper_1 = require("../helpers/StandardCardHelper"); describe('test the StandardCardHelper helper and all methods in it', function () { it('test makeStandardCard() method', function () { var card = StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE); expect(card.color).toEqual(StandardDeckEnum_1.StandardCardColor.BLACK); expect(card.name).toEqual(StandardDeckEnum_1.StandardCardName.CLUBS_ACE); expect(card.number).toEqual(1); expect(card.rank).toEqual(StandardDeckEnum_1.StandardCardRank.ACE); expect(card.suite).toEqual(StandardDeckEnum_1.StandardCardSuite.CLUBS); }); it('test sortCards() method', function () { var cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_FIVE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_NINE), ]; var sortedCards = StandardCardHelper_1.StandardCardHelper.sortCards(cards); expect(cards).toEqual([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_FIVE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_NINE), ]); expect(sortedCards).toEqual([ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_FIVE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_NINE), ]); }); it('test hasSameSuite() method', function () { var cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_FIVE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_NINE), ]; expect(StandardCardHelper_1.StandardCardHelper.hasSameSuite(cards)).toBe(true); cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_NINE), ]; expect(StandardCardHelper_1.StandardCardHelper.hasSameSuite(cards)).toBe(false); }); it('test hasPairSuite() method', function () { var cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_FIVE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_NINE), ]; expect(StandardCardHelper_1.StandardCardHelper.hasPairSuite(cards)).toBe(true); cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_NINE), ]; expect(StandardCardHelper_1.StandardCardHelper.hasPairSuite(cards)).toBe(true); cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_ACE), ]; expect(StandardCardHelper_1.StandardCardHelper.hasPairSuite(cards)).toBe(false); }); it('test hasSameNumber() method', function () { var cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_EIGHT), ]; expect(StandardCardHelper_1.StandardCardHelper.hasSameNumber(cards)).toBe(true); cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_EIGHT), ]; expect(StandardCardHelper_1.StandardCardHelper.hasSameNumber(cards)).toBe(false); }); it('test hasPairNumber() method', function () { var cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_EIGHT), ]; expect(StandardCardHelper_1.StandardCardHelper.hasPairNumber(cards)).toBe(true); cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_EIGHT), ]; expect(StandardCardHelper_1.StandardCardHelper.hasPairNumber(cards)).toBe(true); cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_ACE), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_FOUR), ]; expect(StandardCardHelper_1.StandardCardHelper.hasPairNumber(cards)).toBe(false); }); it('test isInDeck() method', function () { var cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_EIGHT), ]; expect(StandardCardHelper_1.StandardCardHelper.isInDeck(cards, StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT)).toBe(0); expect(StandardCardHelper_1.StandardCardHelper.isInDeck(cards, StandardDeckEnum_1.StandardCardName.DIAMONDS_ACE)).toBe(-1); }); it('test isNumberInDeck() method', function () { var cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.DIAMONDS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.HEARTS_EIGHT), ]; expect(StandardCardHelper_1.StandardCardHelper.isNumberInDeck(cards, 8)).toBe(0); expect(StandardCardHelper_1.StandardCardHelper.isNumberInDeck(cards, 5)).toBe(-1); }); it('test getCountFromDeck() method', function () { var cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.JOKER), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.JOKER), ]; var cardsToCompare = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.JOKER), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.JOKER), ]; expect(StandardCardHelper_1.StandardCardHelper.getCountFromDeck(cards, StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT)).toBe(1); expect(StandardCardHelper_1.StandardCardHelper.getCountFromDeck(cards, StandardDeckEnum_1.StandardCardName.JOKER)).toBe(2); expect(StandardCardHelper_1.StandardCardHelper.getCountFromDeck(cards, StandardDeckEnum_1.StandardCardName.CLUBS_ACE)).toBe(0); expect(cardsToCompare).toMatchObject(cards); }); it('test hasDuplicates() method', function () { var cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.JOKER), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.JOKER), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), ]; var cardsToCompare = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.JOKER), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.JOKER), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), ]; expect(StandardCardHelper_1.StandardCardHelper.hasDuplicates(cards)).toBe(true); expect(StandardCardHelper_1.StandardCardHelper.hasDuplicates(cards, [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.JOKER), ])).toBe(true); expect(StandardCardHelper_1.StandardCardHelper.hasDuplicates(cards, [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), ])).toBe(true); expect(StandardCardHelper_1.StandardCardHelper.hasDuplicates(cards, [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.JOKER), ])).toBe(false); expect(cardsToCompare).toMatchObject(cards); cards = [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.JOKER), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), ]; expect(StandardCardHelper_1.StandardCardHelper.hasDuplicates(cards, [ StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_EIGHT), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.JOKER), StandardCardHelper_1.StandardCardHelper.makeStandardCard(StandardDeckEnum_1.StandardCardName.CLUBS_ACE), ])).toBe(false); }); });