require "test_helper" class Rooms::OpensControllerTest < ActionDispatch::IntegrationTest setup do sign_in :david end test "show redirects to get general show" do get rooms_open_url(users(:david).rooms.opens.last) assert_redirected_to room_url(users(:david).rooms.opens.last) end test "new" do get new_rooms_open_url assert_response :success end test "create" do assert_turbo_stream_broadcasts :rooms, count: 1 do post rooms_opens_url, params: { room: { name: "My New Room" } } end assert_equal Room.last.memberships.count, User.count assert_redirected_to room_url(Room.last) end test "only admins or creators can update" do sign_in :jz assert_turbo_stream_broadcasts :rooms, count: 0 do put rooms_open_url(rooms(:hq)), params: { room: { name: "New Name" } } end assert_response :forbidden assert rooms(:hq).reload.name, "HQ" end test "update" do assert_turbo_stream_broadcasts :rooms, count: 1 do put rooms_open_url(rooms(:pets)), params: { room: { name: "New Name" } } end assert_redirected_to room_url(rooms(:pets)) assert rooms(:pets).reload.name, "New Name" end test "update a closed room to be open" do put rooms_open_url(rooms(:designers)), params: { room: { name: "Doesn't matter" } } assert_equal rooms(:designers).memberships.count, User.count end end