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