DEV: Ensure DiscourseEvent handlers cleaned up during specs (#11205)

This commit is contained in:
David Taylor
2020-11-11 19:46:13 +00:00
committed by GitHub
parent 24976669b8
commit 803b8933fa
7 changed files with 54 additions and 28 deletions

View File

@ -31,10 +31,16 @@ describe DiscourseEvent do
)
}
let(:event_handler) do
Proc.new { |user| user.name = 'Two Face' }
end
before do
DiscourseEvent.on(:acid_face) do |user|
user.name = 'Two Face'
end
DiscourseEvent.on(:acid_face, &event_handler)
end
after do
DiscourseEvent.off(:acid_face, &event_handler)
end
context 'when event does not exist' do
@ -60,14 +66,19 @@ describe DiscourseEvent do
context 'when multiple events exist' do
before do
DiscourseEvent.on(:acid_face) do |user|
user.job = 'Supervillian'
end
let(:event_handler_2) do
Proc.new { |user| user.job = 'Supervillian' }
end
before do
DiscourseEvent.on(:acid_face, &event_handler_2)
DiscourseEvent.trigger(:acid_face, harvey)
end
after do
DiscourseEvent.off(:acid_face, &event_handler_2)
end
it 'triggers both events' do
expect(harvey.job).to eq('Supervillian')
expect(harvey.name).to eq('Two Face')