mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-02-21 12:10:34 +09:00
38 lines
1.3 KiB
Ruby
38 lines
1.3 KiB
Ruby
require "test_helper"
|
|
|
|
class RoomTest < ActiveSupport::TestCase
|
|
test "grant membership to user" do
|
|
rooms(:watercooler).memberships.grant_to(users(:kevin))
|
|
assert rooms(:watercooler).users.include?(users(:kevin))
|
|
end
|
|
|
|
test "revoke membership from user" do
|
|
rooms(:watercooler).memberships.revoke_from(users(:david))
|
|
assert_not rooms(:watercooler).users.include?(users(:david))
|
|
end
|
|
|
|
test "revise memberships" do
|
|
rooms(:watercooler).memberships.revise(granted: users(:kevin), revoked: users(:david))
|
|
assert rooms(:watercooler).users.include?(users(:kevin))
|
|
assert_not rooms(:watercooler).users.include?(users(:david))
|
|
end
|
|
|
|
test "create for users by giving them immediate membership" do
|
|
room = Rooms::Closed.create_for({ name: "Hello!", creator: users(:david) }, users: [ users(:kevin), users(:david) ])
|
|
assert room.users.include?(users(:kevin))
|
|
assert room.users.include?(users(:david))
|
|
end
|
|
|
|
test "type" do
|
|
assert Rooms::Open.new.open?
|
|
assert_not Rooms::Open.new.direct?
|
|
assert Rooms::Direct.new.direct?
|
|
assert Rooms::Closed.new.closed?
|
|
end
|
|
|
|
test "default involvement for new users" do
|
|
room = Rooms::Closed.create_for({ name: "Hello!", creator: users(:david) }, users: [ users(:kevin), users(:david) ])
|
|
assert room.memberships.all? { |m| m.involved_in_mentions? }
|
|
end
|
|
end
|