fix(mailer): observers on balancer and balanced delivery methods

- Les observers doivent être déclarés *avant*
  le chargement de nos delivery methods (Sendinblue & Dolist),
  sinon ils seront ignorés par ces derniers

- dans le balancer, on ne peut pas appeler `.deliver` une seconde fois,
  sinon les observers (et interceptors) sont invoqués deux fois.
This commit is contained in:
Colin Darie 2023-01-11 00:30:12 +01:00
parent 1766288c51
commit 05b517a847
No known key found for this signature in database
GPG key ID: 4FB865FDBCA4BCC4
3 changed files with 33 additions and 3 deletions

View file

@ -83,6 +83,24 @@ RSpec.describe BalancerDeliveryMethod do
end
end
context 'when observers are configured' do
let(:observer) { double("Observer") }
before do
allow(observer).to receive(:delivered_email)
ActionMailer::Base.register_observer(observer)
end
after do
ActionMailer::Base.unregister_observer(observer)
end
it 'invoke the observer exactly once' do
mail = ExampleMailer.greet('Joshua').deliver_now
expect(observer).to have_received(:delivered_email).with(mail).once
end
end
# Helpers
def have_been_delivered_using(delivery_class)