mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-09-01 19:31:32 +09:00
df76a227dc
First open source release of Campfire 🎉
52 lines
1.3 KiB
Ruby
52 lines
1.3 KiB
Ruby
require "test_helper"
|
|
|
|
class PresenceChannelTest < ActionCable::Channel::TestCase
|
|
setup do
|
|
stub_connection(current_user: users(:david))
|
|
end
|
|
|
|
test "subscribes" do
|
|
room = users(:david).rooms.first
|
|
|
|
subscribe room_id: room.id
|
|
|
|
assert subscription.confirmed?
|
|
assert_has_stream_for room
|
|
end
|
|
|
|
test "rejects subscription to a room that the user is not a member of" do
|
|
subscribe room_id: Rooms::Closed.create!(name: "New Room", creator: users(:david)).id
|
|
|
|
assert subscription.rejected?
|
|
end
|
|
|
|
test "rejects subscription to non-existent room" do
|
|
subscribe room_id: -1
|
|
|
|
assert subscription.rejected?
|
|
end
|
|
|
|
test "rejects subscription without a room" do
|
|
subscribe room_id: -1
|
|
|
|
assert subscription.rejected?
|
|
end
|
|
|
|
test "subscribing marks the membership as connected" do
|
|
membership = users(:david).memberships.first
|
|
|
|
assert_changes -> { membership.reload.connected? }, from: false, to: true do
|
|
subscribe room_id: membership.room_id
|
|
end
|
|
end
|
|
|
|
test "unsubscribing marks the membership as disconnected" do
|
|
membership = users(:david).memberships.first
|
|
subscribe room_id: membership.room_id
|
|
|
|
assert_changes -> { membership.reload.connected? }, from: true, to: false do
|
|
unsubscribe
|
|
end
|
|
end
|
|
end
|