card-games-utils
Version:
Utility package for card games
173 lines (172 loc) • 12.9 kB
JavaScript
"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);
});
});