40 lines
1.1 KiB
Ruby
40 lines
1.1 KiB
Ruby
require 'rails_helper'
|
|
|
|
RSpec.describe Play, type: :model do
|
|
before(:each) do
|
|
@game = FactoryGirl.create(:game)
|
|
@user1 = FactoryGirl.create(:user)
|
|
@user2 = FactoryGirl.create(:user)
|
|
@game.add_player_from_user @user1
|
|
@game.add_player_from_user @user2
|
|
@game.save
|
|
@game.start
|
|
@play = @game.current_player.plays.new
|
|
@play.game_id = @game.id
|
|
@play.save
|
|
end
|
|
|
|
subject { @play }
|
|
|
|
it { should respond_to(:game_id) }
|
|
|
|
it '#game_id returns an integer' do
|
|
expect(@play.game_id).to match @game.id
|
|
end
|
|
|
|
describe 'validations' do
|
|
describe 'first_play' do
|
|
context 'when there have been no plays yet' do
|
|
it 'is valid if it contains the lowest card' do
|
|
expect(@game.plays.count).to eq(1)
|
|
expect(@game.current_player).to eq(@game.lowest_card.player)
|
|
@card_to_play = @game.current_player.player_cards.order(:value).first
|
|
@card_to_play.play_id = @play.id
|
|
@card_to_play.save
|
|
expect(@play.player_cards.include? @game.lowest_card).to eq true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|