Merge pull request #182 from AlecM33/fix-startability

Fix logic that determines if a game is startable when first constructed
This commit is contained in:
Alec
2023-11-28 18:25:34 -05:00
committed by GitHub
3 changed files with 8 additions and 7 deletions

View File

@@ -9,8 +9,7 @@ class Game {
hasDedicatedModerator,
originalModeratorId,
createTime,
timerParams = null,
isTestGame = false
timerParams = null
) {
this.accessCode = accessCode;
this.status = status;
@@ -27,9 +26,6 @@ class Game {
this.previousModeratorId = null;
this.createTime = createTime;
this.timerParams = timerParams;
this.isStartable = (this.gameSize === 1 && !this.hasDedicatedModerator)
|| (this.gameSize === 0 && this.hasDedicatedModerator)
|| isTestGame;
this.timeRemaining = null;
}
}

View File

@@ -91,10 +91,12 @@ class GameManager {
req.hasDedicatedModerator,
moderator.id,
new Date().toJSON(),
req.timerParams,
req.isTestGame
req.timerParams
);
newGame.people = initializePeopleForGame(req.deck, moderator, this.shuffle, req.isTestGame, newGame.gameSize);
newGame.isStartable = newGame.people.filter(person => person.userType === USER_TYPES.PLAYER
|| person.userType === USER_TYPES.TEMPORARY_MODERATOR
|| person.userType === USER_TYPES.BOT).length === newGame.gameSize;
await this.eventManager.publisher.set(newAccessCode, JSON.stringify(newGame), {
EX: PRIMITIVES.STALE_GAME_SECONDS
});

View File

@@ -42,6 +42,9 @@ describe('Events', () => {
new Date().toJSON(),
null
);
game.isStartable = game.people.filter(person => person.userType === USER_TYPES.PLAYER
|| person.userType === USER_TYPES.TEMPORARY_MODERATOR
|| person.userType === USER_TYPES.BOT).length === game.gameSize;
spyOn(namespace, 'to').and.callThrough();
spyOn(namespace, 'in').and.callThrough();
spyOn(socket, 'to').and.callThrough();