From ef0e53756e87d494585a14c11b693d6efd44d6b0 Mon Sep 17 00:00:00 2001 From: Sorrel Bri Date: Thu, 14 May 2020 20:59:49 -0700 Subject: [PATCH] add submitResign to Game --- packages/server/services/Game.js | 7 +++++++ packages/server/test/Game.spec.js | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/packages/server/services/Game.js b/packages/server/services/Game.js index 1bbe763..31ed73f 100644 --- a/packages/server/services/Game.js +++ b/packages/server/services/Game.js @@ -263,6 +263,13 @@ const Game = ({gameData = {}, gameRecord = []} = {}) => { gameData: { komi, handicap, boardSize }, gameRecord: [...this.gameRecord.slice(0, index)] }); + }, + + submitResign: function(player) { + if (player === 'black') this.winner = -1; + if (player === 'white') this.winner = 1; + this.turn = 0; + return this; } } }; diff --git a/packages/server/test/Game.spec.js b/packages/server/test/Game.spec.js index aa0e45e..7628adc 100644 --- a/packages/server/test/Game.spec.js +++ b/packages/server/test/Game.spec.js @@ -469,6 +469,14 @@ describe('Game history functionality', () => { fifthMoveGame.boardState['10-4'].stone.should.eql(1) fifthMoveGame.boardState['4-10'].stone.should.eql(0) done(); + }); +}); + +describe('Game end logic', () => { + it('resignation results in game end', done => { + Game().initGame().submitResign('black') + .getMeta().should.eql({...initialMeta, winner: -1}); + done(); }) })