Created
February 18, 2014 22:09
-
-
Save possan/9081412 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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