Files
discourse/spec/models/group_associated_group_spec.rb
2025-02-17 10:00:08 +01:00

41 lines
1.3 KiB
Ruby

# frozen_string_literal: true
RSpec.describe GroupAssociatedGroup do
fab!(:user)
fab!(:group)
fab!(:group2) { Fabricate(:group) }
fab!(:associated_group)
fab!(:associated_group2) { Fabricate(:associated_group) }
fab!(:uag) do
UserAssociatedGroup.create(user_id: user.id, associated_group_id: associated_group.id)
end
fab!(:gag) do
described_class.create(group_id: group.id, associated_group_id: associated_group.id)
end
it "adds users to group when created" do
expect(group.users.include?(user)).to eq(true)
end
it "removes users from group when destroyed" do
gag.destroy!
expect(group.users.include?(user)).to eq(false)
end
it "does not remove users with multiple associations to group when destroyed" do
UserAssociatedGroup.create(user_id: user.id, associated_group_id: associated_group2.id)
described_class.create(group_id: group.id, associated_group_id: associated_group2.id)
gag.destroy!
expect(group.users.include?(user)).to eq(true)
end
it "removes users with multiple associations to other groups when destroyed" do
UserAssociatedGroup.create(user_id: user.id, associated_group_id: associated_group2.id)
described_class.create(group_id: group2.id, associated_group_id: associated_group2.id)
gag.destroy!
expect(group.users.include?(user)).to eq(false)
end
end