72 lines
2.5 KiB
JavaScript
72 lines
2.5 KiB
JavaScript
const { expect } = require('chai');
|
|
const RoomModel = require('../../schemas/room');
|
|
const { getPawnPositionAfterMove, getStartPositions } = require('../../utils/functions');
|
|
describe('Testing room model methods', function () {
|
|
const room = new RoomModel();
|
|
|
|
beforeEach(function () {
|
|
room.players = [];
|
|
room.pawns = getStartPositions();
|
|
});
|
|
it('should correctly beat pawn', function () {
|
|
room.addPlayer('test1', 'red');
|
|
room.addPlayer('test2', 'blue');
|
|
room.pawns.forEach(pawn => {
|
|
pawn.position = getPawnPositionAfterMove(1, pawn);
|
|
});
|
|
room.beatPawns(16, 'green');
|
|
room.pawns.forEach(pawn => {
|
|
if (pawn.color != 'red') {
|
|
expect(pawn.position).to.not.equal(pawn.basePos);
|
|
} else {
|
|
expect(pawn.position).to.equal(pawn.basePos);
|
|
}
|
|
});
|
|
});
|
|
|
|
it('should correctly beat multiple pawns', function () {
|
|
room.pawns[0].position = 16;
|
|
room.pawns[1].position = 16;
|
|
room.beatPawns(16, 'green');
|
|
room.pawns.forEach(pawn => {
|
|
expect(pawn.position).to.equal(pawn.basePos);
|
|
});
|
|
});
|
|
|
|
it('should correctly change moving player from last to first', function () {
|
|
room.addPlayer('test1', 'red');
|
|
room.addPlayer('test2', 'blue');
|
|
room.players[1].nowMoving = true;
|
|
room.changeMovingPlayer();
|
|
expect(room.players[0].nowMoving).to.equal(true);
|
|
});
|
|
|
|
it('should correctly change moving player from first to second', function () {
|
|
room.addPlayer('test1', 'red');
|
|
room.addPlayer('test2', 'blue');
|
|
room.players[0].nowMoving = true;
|
|
room.changeMovingPlayer();
|
|
expect(room.players[1].nowMoving).to.equal(true);
|
|
});
|
|
|
|
it('should correctly returns pawns that can move', function () {
|
|
room.addPlayer('test1', 'red');
|
|
room.addPlayer('test2', 'blue');
|
|
room.players[0].nowMoving = true;
|
|
room.pawns[0].position = 16;
|
|
room.rolledNumber = 2;
|
|
const pawnsThatCanMove = room.getPawnsThatCanMove();
|
|
expect(pawnsThatCanMove.length).to.equal(1);
|
|
});
|
|
|
|
it('should given rolled 6 correctly returns pawns that can move', function () {
|
|
room.addPlayer('test1', 'red');
|
|
room.addPlayer('test2', 'blue');
|
|
room.players[0].nowMoving = true;
|
|
room.pawns[0].position = 16;
|
|
room.rolledNumber = 6;
|
|
const pawnsThatCanMove = room.getPawnsThatCanMove();
|
|
expect(pawnsThatCanMove.length).to.equal(4);
|
|
});
|
|
});
|