mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-02-21 12:10:34 +09:00
61 lines
1.7 KiB
Ruby
61 lines
1.7 KiB
Ruby
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 "create forbidden by non-admin when account restricts creation to admins" do
|
|
accounts(:signal).settings.restrict_room_creation_to_administrators = true
|
|
accounts(:signal).save!
|
|
|
|
sign_in :jz
|
|
post rooms_opens_url, params: { room: { name: "My New Room" } }
|
|
assert_response :forbidden
|
|
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
|