Skip to content

Instantly share code, notes, and snippets.

@possan
Created February 18, 2014 22:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save possan/9081412 to your computer and use it in GitHub Desktop.
Save possan/9081412 to your computer and use it in GitHub Desktop.
it('it knows when players should select categories and set questions', function() {
var g = new Game();
g.setupTwoPlayerGame(player1, player2);
assert.equal(true, g.canSetRoundQuestions(player1.id), 'canSetRoundQuestions P1 should return true');
assert.equal(false, g.canSetRoundQuestions(player2.id), 'canSetRoundQuestions P2 should return false');
g.setRoundQuestions(player1.id, 'x', 'y', [{ id:1, text:'question 1', alternatives: [] }]);
assert.equal(false, g.canSetRoundQuestions(player1.id));
assert.equal(false, g.canSetRoundQuestions(player2.id));
//
// Runda 1:
//
console.log('round 1', g);
//
// * A har valt kategori i spelskapandet
//
//
// * A spelar
//
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player1.id), 'shouldSetCategoryBeforeStartingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player2.id), 'shouldSetCategoryBeforeStartingTurn P2 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player1.id), 'shouldSetCategoryAfterEndingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player2.id), 'shouldSetCategoryAfterEndingTurn P2 should be false');
g.startTurn(player1.id);
g.answer(player1.id, { 1: 0 }, 1);
//
// * B spelar
//
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player1.id), 'shouldSetCategoryBeforeStartingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player2.id), 'shouldSetCategoryBeforeStartingTurn P2 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player1.id), 'shouldSetCategoryAfterEndingTurn P1 should be false');
assert.equal(true, g.shouldSetCategoryAfterEndingTurn(player2.id), 'shouldSetCategoryAfterEndingTurn P2 should be true');
g.startTurn(player2.id);
g.answer(player2.id, { 1: 0 }, 2);
//
// * B väljer nästkommande kategori
//
assert.equal(false, g.canSetRoundQuestions(player1.id), 'canSetRoundQuestions P1 should be false');
assert.equal(true, g.canSetRoundQuestions(player2.id), 'canSetRoundQuestions P2 should be true');
g.setRoundQuestions(player2.id, 'x', 'y', [{ id:1, text:'question 1', alternatives: [] }]);
//
// Runda 2:
//
console.log('round 2', g);
//
// * A spelar
//
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player1.id), 'shouldSetCategoryBeforeStartingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player2.id), 'shouldSetCategoryBeforeStartingTurn P2 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player1.id), 'shouldSetCategoryAfterEndingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player2.id), 'shouldSetCategoryAfterEndingTurn P2 should be false');
g.startTurn(player1.id);
g.answer(player1.id, { 1: 0 }, 1);
//
// * B spelar
//
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player1.id), 'shouldSetCategoryBeforeStartingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player2.id), 'shouldSetCategoryBeforeStartingTurn P2 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player1.id), 'shouldSetCategoryAfterEndingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player2.id), 'shouldSetCategoryAfterEndingTurn P2 should be false');
g.startTurn(player2.id);
g.answer(player2.id, { 1: 0 }, 2);
//
// Runda 3:
//
console.log('round 3', g);
//
// * A får välja nästa kategori
//
assert.equal(true, g.shouldSetCategoryBeforeStartingTurn(player1.id), 'shouldSetCategoryBeforeStartingTurn P1 should be true');
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player2.id), 'shouldSetCategoryBeforeStartingTurn P2 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player1.id), 'shouldSetCategoryAfterEndingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player2.id), 'shouldSetCategoryAfterEndingTurn P2 should be false');
//
// * A spelar
//
g.startTurn(player1.id);
g.answer(player1.id, { 1: 0 }, 1);
//
// * B spelar
//
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player1.id), 'shouldSetCategoryBeforeStartingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player2.id), 'shouldSetCategoryBeforeStartingTurn P2 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player1.id), 'shouldSetCategoryAfterEndingTurn P1 should be false');
assert.equal(true, g.shouldSetCategoryAfterEndingTurn(player2.id), 'shouldSetCategoryAfterEndingTurn P2 should be true');
g.startTurn(player2.id);
g.answer(player2.id, { 1: 0 }, 2);
//
// * B väljer nästkommande kategori
//
assert.equal(false, g.canSetRoundQuestions(player1.id), 'canSetRoundQuestions P1 should be false');
assert.equal(true, g.canSetRoundQuestions(player2.id), 'canSetRoundQuestions P2 should be true');
g.setRoundQuestions(player2.id, 'x', 'y', [{ id:1, text:'question 1', alternatives: [] }]);
//
// Runda 4:
//
console.log('round 4', g);
//
// * A spelar
//
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player1.id), 'shouldSetCategoryBeforeStartingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player2.id), 'shouldSetCategoryBeforeStartingTurn P2 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player1.id), 'shouldSetCategoryAfterEndingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player2.id), 'shouldSetCategoryAfterEndingTurn P2 should be false');
g.startTurn(player1.id);
g.answer(player1.id, { 1: 0 }, 1);
//
// * B spelar
//
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player1.id), 'shouldSetCategoryBeforeStartingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player2.id), 'shouldSetCategoryBeforeStartingTurn P2 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player1.id), 'shouldSetCategoryAfterEndingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player2.id), 'shouldSetCategoryAfterEndingTurn P2 should be false');
g.startTurn(player2.id);
g.answer(player2.id, { 1: 0 }, 2);
//
// Runda 5:
//
//
console.log('round 5', g);
//
// * A får välja nästa kategori
//
assert.equal(true, g.shouldSetCategoryBeforeStartingTurn(player1.id), 'shouldSetCategoryBeforeStartingTurn P1 should be true');
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player2.id), 'shouldSetCategoryBeforeStartingTurn P2 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player1.id), 'shouldSetCategoryAfterEndingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player2.id), 'shouldSetCategoryAfterEndingTurn P2 should be false');
//
// * A spelar
//
g.startTurn(player1.id);
g.answer(player1.id, { 1: 0 }, 1);
//
// * B spelar
//
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player1.id), 'shouldSetCategoryBeforeStartingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player2.id), 'shouldSetCategoryBeforeStartingTurn P2 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player1.id), 'shouldSetCategoryAfterEndingTurn P1 should be false');
assert.equal(true, g.shouldSetCategoryAfterEndingTurn(player2.id), 'shouldSetCategoryAfterEndingTurn P2 should be true');
g.startTurn(player2.id);
g.answer(player2.id, { 1: 0 }, 2);
//
// * B väljer nästkommande kategori
//
assert.equal(false, g.canSetRoundQuestions(player1.id), 'canSetRoundQuestions P1 should be false');
assert.equal(true, g.canSetRoundQuestions(player2.id), 'canSetRoundQuestions P2 should be true');
g.setRoundQuestions(player2.id, 'x', 'y', [{ id:1, text:'question 1', alternatives: [] }]);
//
// Runda 6:
//
console.log('round 6', g);
//
// * A spelar
//
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player1.id), 'shouldSetCategoryBeforeStartingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player2.id), 'shouldSetCategoryBeforeStartingTurn P2 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player1.id), 'shouldSetCategoryAfterEndingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player2.id), 'shouldSetCategoryAfterEndingTurn P2 should be false');
g.startTurn(player1.id);
g.answer(player1.id, { 1: 0 }, 1);
//
// * B spelar
//
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player1.id), 'shouldSetCategoryBeforeStartingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryBeforeStartingTurn(player2.id), 'shouldSetCategoryBeforeStartingTurn P2 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player1.id), 'shouldSetCategoryAfterEndingTurn P1 should be false');
assert.equal(false, g.shouldSetCategoryAfterEndingTurn(player2.id), 'shouldSetCategoryAfterEndingTurn P2 should be false');
g.startTurn(player2.id);
g.answer(player2.id, { 1: 0 }, 2);
//
// Game over.
//
console.log('game over', g);
assert.equal(true, g.isGameOver());
assert.equal(6, g.players[0].score);
assert.equal(12, g.players[1].score);
assert.equal(player2.id, g.result.winner);
assert.equal(false, g.result.draw);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment