DEV: adds event hook when add/remove user to group (#8038)

This commit is contained in:
Joffrey JAFFEUX
2019-09-10 11:58:08 -05:00
committed by GitHub
parent 1cebe7670a
commit a25869969a
4 changed files with 45 additions and 3 deletions

View File

@ -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) }