86 lines
2.9 KiB
Ruby
86 lines
2.9 KiB
Ruby
require 'rails_helper'
|
|
include Warden::Test::Helpers
|
|
Warden.test_mode!
|
|
|
|
feature 'Play a hand', type: :feature do
|
|
after(:each) do
|
|
Warden.test_reset!
|
|
end
|
|
|
|
# Scenario: The first play must be the lowest dealt card
|
|
# Given: A new game and I am the holder of the lowest card
|
|
# When I play a hand containing the lowest card
|
|
# Then I see a successful play message
|
|
scenario 'first play contains lowest card' do
|
|
# TODO: extract game setup to a factory
|
|
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.start
|
|
login_as(game.current_player.user, scope: :user)
|
|
visit game_path game
|
|
# Click the lowest card checkbox
|
|
@card_to_play = game.lowest_card
|
|
check @card_to_play.to_s
|
|
click_button 'Play Hand'
|
|
expect(page).to have_content('Played ' + game.lowest_card.to_s)
|
|
# create game with players
|
|
# current_player plays hand containing lowest card
|
|
# expect successful play message
|
|
end
|
|
|
|
scenario 'first play does not contain lowest card' 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.start
|
|
login_as(game.current_player.user, scope: :user)
|
|
visit game_path game
|
|
# Click the lowest card checkbox
|
|
@card_to_play = game.current_player.player_cards.order(:value).last
|
|
check @card_to_play.to_s
|
|
click_button 'Play Hand'
|
|
expect(page).to have_content
|
|
"First hand must contain the lowest card: #{game.lowest_card.to_s}"
|
|
# current_player plays hand not containing lowest card
|
|
# expect unsuccessful play message hand MUST contain lowest card
|
|
end
|
|
|
|
# Scenario: Player can play a valid hand on their turn
|
|
# Given I am the active player
|
|
# When I play a valid hand
|
|
# Then I see a successful play message
|
|
scenario 'active player can play a valid hand' do
|
|
# create game with players
|
|
# current_player plays a valid hand
|
|
# expect successful play message
|
|
skip 'to be implemented'
|
|
end
|
|
|
|
# Scenario: Player can not play an invalid hand on their turn
|
|
# Given I am the active player
|
|
# When I play an invalid hand
|
|
# Then I see an invalid hand message
|
|
scenario 'active player can play a valid hand' do
|
|
# create game with players
|
|
# current_player plays an invalid hand
|
|
# expect invalid hand message
|
|
skip 'to be implemented'
|
|
end
|
|
|
|
# Scenario: Player can not play a hand when it is not their turn
|
|
# Given I am not the active player
|
|
# When I play a hand
|
|
# Then I see an unsuccessful play message
|
|
scenario 'inactive player can not play a hand' do
|
|
# create game with players
|
|
# not_current_player plays a valid hand
|
|
# expect unsuccessful play message
|
|
skip 'to be implemented'
|
|
end
|
|
end
|