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

40 lines
1.3 KiB
Ruby

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