playing-cards
Version:
A playing cards module.
68 lines (58 loc) • 1.96 kB
JavaScript
var common = require('./common.js')
var expect = common.expect
var Deck = common.playingCards.Deck
var Card = common.playingCards.Card
var STANDARD = common.playingCards.DECK_TYPES.STANDARD
describe('drawPile', function () {
it('should contain a drawPile array', function () {
var deck = new Deck(STANDARD)
expect(deck).to.have.property('drawPile')
.and.to.be.an.instanceof(Array)
})
it('should contain as some cards', function () {
var deck = new Deck(STANDARD)
expect(deck).to.not.be.empty
})
})
describe('discardPile', function () {
it('should contain a discardPile array', function () {
var deck = new Deck(STANDARD)
expect(deck).to.have.property('discardPile')
.and.to.be.an.instanceof(Array)
})
it('should be empty when intialized', function () {
var deck = new Deck(STANDARD)
expect(deck.discardPile).to.be.empty
})
})
describe('draw', function () {
it('should give a card', function () {
var deck = new Deck(STANDARD)
var card = deck.draw()
expect(card).to.be.instanceof(Card)
})
it('should decrease the draw pile size', function () {
var deck = new Deck(STANDARD)
var numDraw = deck.drawPile.length
deck.draw()
expect(deck.drawPile).to.have.length.of(numDraw - 1)
})
})
describe('discard', function () {
it('should add a card to the discardPile', function () {
var deck = new Deck(STANDARD)
var numDiscard = deck.discardPile.length
var card = deck.draw()
deck.discard(card)
expect(deck.discardPile).to.have.length.of(numDiscard + 1)
})
it('should have the origainl numer of cards after one draw and one discard', function () {
var deck = new Deck(STANDARD)
var total = STANDARD.ranks.length * STANDARD.suits.length + STANDARD.jokers.length
var card = deck.draw()
deck.discard(card)
var newTotal = deck.discardPile.length + deck.drawPile.length
expect(newTotal).to.equal(total)
})
})