 "suitSort",
                handTitle: "Straight Flush",
                handRank: 9,
                cardOrder: [
                    { value: 5, suit: "diamonds" },
                    { value: 4, suit: "diamonds" },
                    { value: 3, suit: "diamonds" },
                    { value: 2, suit: "diamonds" },
                    { value: 1, suit: "diamonds" }
                ],
                pairCards: [
					{ value: 4, suit: "hearts" },
					{ value: 4, suit: "diamonds" },
                    { value: 14, suit: "diamonds" },
                    { value: 8, suit: "spades" },
                    { value: 5, suit: "diamonds" }
                ],
                numPairs: 1,
                straight: true,
                straightCards: [
                    { value: 5, suit: "diamonds" },
                    { value: 4, suit: "diamonds" },
                    { value: 3, suit: "diamonds" },
                    { value: 2, suit: "diamonds" },
                    { value: 1, suit: "diamonds" }
                ]
            };

            expect(handChecker.determineHand(testHand)).to.deep.equal(expected);
        });
    });

    describe("Four of a Kind handChecker", () => {
        const testHand = Object.assign({}, initialHand);
        testHand.cards = hands.fourKind;
        it("should not edit the value of the original hand", () => {
            const originalHand = Object.assign({}, testHand);
            handChecker.determineHand(testHand);
            expect(originalHand).to.deep.equal(testHand);
        });
        it("should result in a Four of a Kind object", () => {
            const expected = {
                cards: [
                    { value: 12, suit: "hearts" },
                    { value: 6, suit: "hearts" },
                    { value: 4, suit: "hearts" },
                    { value: 4, suit: "clubs" },
                    { value: 2, suit: "clubs" },
                    { value: 4, suit: "diamonds" },
                    { value: 4, suit: "spades" }
                ],
                suit: null,
                sort: "suitSort",
                handTitle: "Four of a Kind",
                handRank: 8,
                cardOrder: [
                    { value: 4, suit: "hearts" },
                    { value: 4, suit: "diamonds" },
                    { value: 4, suit: "clubs" },
                    { value: 4, suit: "spades" },
                    { value: 12, suit: "hearts" }
                ],
                pairCards: [
                    { value: 4, suit: "hearts" },
                    { value: 4, suit: "diamonds" },
                    { value: 4, suit: "clubs" },
                    { value: 4, suit: "spades" },
                    { value: 12, suit: "hearts" }
                ],
                numPairs: 3,
                straight: false,
                straightCards: []
            };

            expect(handChecker.determineHand(testHand)).to.deep.equal(expected);
        });
    });

    describe("Full House handChecker", () => {
        const testHand = Object.assign({}, initialHand);
        testHand.cards = hands.fullHouse;
        it("should not edit the value of the original hand", () => {
            const originalHand = Object.assign({}, testHand);
            handChecker.determineHand(testHand);
            expect(originalHand).to.deep.equal(testHand);
        });
        it("should result in a Full House object", () => {
            const expected = {
                cards: [
                    { value: 10, suit: "hearts" },
                    { value: 6, suit: "hearts" },
                    { value: 4, suit: "hearts" },
                    { value: 2, suit: "hearts" },
                    { value: 2, suit: "clubs" },
                    { value: 4, suit: "diamonds" },
                    { value: 2, suit: "spades" }
                ],
                suit: null,
                sort: "suitSort",
                handTitle: "Full House",
                handRank: 7,
                cardOrder: [
                    { value: 2, suit: "clubs" },
                    { value: 2, suit: "hearts" },
                    { value: 2, suit: "spades" },
                    { value: 4, suit: "diamonds" },
                    { value: 4, suit: "hearts" }
                ],
                pairCards: [
                    { value: 4, suit: "diamonds" },
                    { value: 4, suit: "hearts" },
                    { value: 2, suit: "clubs" },
                    { value: 2, suit: "hearts" },
                    { value: 2, suit: "spades" }
                ],
                numPairs: 3,
                straight: false,
                straightCards: []
            };

            expect(handChecker.determineHand(testHand)).to.deep.equal(expected);
        });
    });

    describe("Flush handChecker", () => {
        const testHand = Object.assign({}, initialHand);
        testHand.cards = hands.flush;
        it("should not edit the value of the original hand", () => {
            const originalHand = Object.assign({}, testHand);
            handChecker.determineHand(testHand);
            expect(originalHand).to.deep.equal(testHand);
        });
        it("should result in a Flush object", () => {
            const expected = {
                cards: [
                    { value: 12, suit: "hearts" },
                    { value: 10, suit: "hearts" },
                    { value: 8, suit: "hearts" },
                    { value: 6, suit: "hearts" },
                    { value: 4, suit: "hearts" },
                    { value: 2, suit: "clubs" },
                    { value: 4, suit: "diamonds" }
                ],
                suit: "hearts",
                sort: "suitSort",
                handTitle: "Flush",
                handRank: 6,
                cardOrder: [
                    { value: 12, suit: "hearts" },
                    { value: 10, suit: "hearts" },
                    { value: 8, suit: "hearts" },
                    { value: 6, suit: "hearts" },
                    { value: 4, suit: "hearts" }
                ],
                pairCards: [
                    { value: 4, suit: "diamonds" },
                    { value: 4, suit: "hearts" },
                    { value: 12, suit: "hearts" },
                    { value: 10, suit: "hearts" },
                    { value: 8, suit: "hearts" }
                ],
                numPairs: 1,
                straight: false,
                straightCards: []
            };

            expect(handChecker.determineHand(testHand)).to.deep.equal(expected);
        });
    });

    describe("Straight handChecker", () => {
        const testHand = Object.assign({}, initialHand);
        testHand.cards = hands.straight;
        it("should not edit the value of the original hand", () => {
            const originalHand = Object.assign({}, testHand);
            handChecker.determineHand(testHand);
            expect(originalHand).to.deep.equal(testHand);
        });
        it("should result in a Straight object while correctly marking aces high or low", () => {
            const expected = {
                cards: [
                    { value: 14, suit: "hearts" },
                    { value: 5, suit: "hearts" },
                    { value: 4, suit: "hearts" },
                    { value: 2, suit: "hearts" },
                    { value: 4, suit: "diamonds" },
                    { value: 8, suit: "spades" },
                    { value: 3, suit: "spades" }
                ],
                suit: null,
                sort: "suitSort",
                handTitle: "Straight",
                handRank: 5,
                cardOrder: [
                    { value: 5, suit: "hearts" },
                    { value: 4, suit: "diamonds" },
                    { value: 3, suit: "spades"