From 5e63580be8a2ab927d5ea00f89b021df94576bb7 Mon Sep 17 00:00:00 2001 From: "Jesse C. Fisher" Date: Thu, 8 Jul 2021 23:47:37 -0700 Subject: [PATCH] Fix player count game validation --- app/models/game.rb | 8 ++++---- spec/models/game_spec.rb | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/models/game.rb b/app/models/game.rb index 00376722..c956ad35 100644 --- a/app/models/game.rb +++ b/app/models/game.rb @@ -50,10 +50,10 @@ class Game < ActiveRecord::Base def validate_startable @player_count = players.count @user_count = players.where.not(soft_token: nil).count - errors[:players] = 'Must be at least 2 players.' if @user_count < 2 - errors[:players] = 'Must be less than 5 players.' if @user_count > 4 - errors[:status] = 'Game already started...' if self.status.nil? == false - errors[:player_cards] = 'Cards already dealt...' unless player_cards.empty? + errors.add(:players, 'Must be at least 2 players.') if @player_count < 2 + errors.add(:players, 'Must be less than 5 players.') if @player_count > 4 + errors.add(:status, 'Game already started...') if self.status.nil? == false + errors.add(:player_cards, 'Cards already dealt...') unless player_cards.empty? fail StandardError, errors if errors.count > 0 return true end diff --git a/spec/models/game_spec.rb b/spec/models/game_spec.rb index 4bc3ef45..b4c11a13 100644 --- a/spec/models/game_spec.rb +++ b/spec/models/game_spec.rb @@ -67,6 +67,7 @@ RSpec.describe Game, type: :model do @game.players.new(user_id: User.last.id) expect { @game.validate_startable }.to raise_error StandardError expect(@game.startable?).to eq(false) + binding.pry expect(@game.errors[:players]) .to include 'Must be less than 5 players.' end