mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 16:21:18 +08:00
DEV: adds event hook when add/remove user to group (#8038)
This commit is contained in:
@ -806,6 +806,11 @@ describe Group do
|
||||
user.update(primary_group: group)
|
||||
expect { group.remove(user) }.to change { user.reload.primary_group }.from(group).to(nil)
|
||||
end
|
||||
|
||||
it 'triggers a user_removed_from_group event' do
|
||||
events = DiscourseEvent.track_events { group.remove(user) }.map { |e| e[:event_name] }
|
||||
expect(events).to include(:user_removed_from_group)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#add' do
|
||||
@ -839,6 +844,25 @@ describe Group do
|
||||
expect(notification.user_id).to eq(user.id)
|
||||
end
|
||||
|
||||
it 'triggers a user_added_to_group event' do
|
||||
begin
|
||||
automatic = nil
|
||||
called = false
|
||||
|
||||
DiscourseEvent.on(:user_added_to_group) do |_u, _g, options|
|
||||
automatic = options[:automatic]
|
||||
called = true
|
||||
end
|
||||
|
||||
group.add(user)
|
||||
|
||||
expect(automatic).to eql(false)
|
||||
expect(called).to eq(true)
|
||||
ensure
|
||||
DiscourseEvent.off(:user_added_to_group)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when adding a user into a public group' do
|
||||
fab!(:category) { Fabricate(:category) }
|
||||
|
||||
|
Reference in New Issue
Block a user