68 lines
1.6 KiB
Ruby
68 lines
1.6 KiB
Ruby
require "test_helper"
|
|
|
|
class GamesControllerTest < ActionDispatch::IntegrationTest
|
|
setup do
|
|
@user = users(:one)
|
|
login_as(@user)
|
|
@game = games(:one)
|
|
# edit/update/destroy には管理者権限が必要
|
|
@game.participants.create!(user: @user, is_administrator: true) unless @game.participants.exists?(user: @user)
|
|
end
|
|
|
|
test "should get index" do
|
|
get games_url
|
|
assert_response :success
|
|
end
|
|
|
|
test "should get new" do
|
|
get new_game_url
|
|
assert_response :success
|
|
end
|
|
|
|
test "should create game" do
|
|
assert_difference("Game.count") do
|
|
post games_url, params: { game: {
|
|
title: "New Test Game",
|
|
memo: @game.memo,
|
|
participants_count: @game.participants_count,
|
|
victory_sc_count: 18,
|
|
scoring_system: "none"
|
|
} }
|
|
end
|
|
|
|
assert_redirected_to game_url(Game.last)
|
|
end
|
|
|
|
test "should show game" do
|
|
# showアクションではgame_stateが必要なため、ターンにgame_stateを設定
|
|
turn = @game.turns.first
|
|
turn.update(game_state: { "centers" => {}, "units" => {} }) if turn
|
|
get game_url(@game)
|
|
assert_response :success
|
|
end
|
|
|
|
test "should get edit" do
|
|
get edit_game_url(@game)
|
|
assert_response :success
|
|
end
|
|
|
|
test "should update game" do
|
|
patch game_url(@game), params: { game: {
|
|
title: @game.title,
|
|
memo: @game.memo,
|
|
auto_order_mode: @game.auto_order_mode,
|
|
victory_sc_count: 18,
|
|
scoring_system: "none"
|
|
} }
|
|
assert_redirected_to game_url(@game)
|
|
end
|
|
|
|
test "should destroy game" do
|
|
assert_difference("Game.count", -1) do
|
|
delete game_url(@game)
|
|
end
|
|
|
|
assert_redirected_to games_url
|
|
end
|
|
end
|