@botpoker/engine-holdem
Version:
Texas Hold'em poker engine
61 lines (47 loc) • 1.35 kB
JavaScript
/* eslint-env jest */
;
const getPlayerFactory = require("./create");
describe("pay", () => {
const create = getPlayerFactory({ info: jest.fn() }, () => {}, { BUYIN: 100 });
let player;
beforeEach(() => {
player = create({ id: "a1", name: "Arale", serviceUrl: "http://arale.com/" });
player.cards = [{ rank: "2", type: "H" }, { rank: "7", type: "H" }];
player.chips = 100;
player.chipsBet = 0;
player.state = "active";
});
it("updates gamestate and player state", () => {
const gamestate = {
callAmount: 0,
players: [
player,
],
pot: 0,
sidepots: [],
};
player.pay(gamestate, 20);
expect(player.chips).toBe(80);
expect(player.chipsBet).toBe(20);
expect(gamestate.callAmount).toBe(20);
expect(gamestate.pot).toBe(20);
expect(gamestate.sidepots).toHaveLength(0);
});
it("doesn't take more than available", () => {
const gamestate = {
callAmount: 0,
players: [
player,
],
pot: 0,
sidepots: [],
};
player.pay(gamestate, 120);
expect(player.allin).toBe(true);
expect(player.chips).toBe(0);
expect(player.chipsBet).toBe(100);
expect(gamestate.callAmount).toBe(100);
expect(gamestate.pot).toBe(100);
expect(gamestate.sidepots).toHaveLength(0);
});
});