| Module | Shoulda::ActionMailer::Assertions |
| In: |
lib/shoulda/action_mailer/assertions.rb
|
Asserts that no ActionMailer mails were delivered
assert_did_not_send_email
# File lib/shoulda/action_mailer/assertions.rb, line 30
30: def assert_did_not_send_email
31: msg = "Sent #{::ActionMailer::Base.deliveries.size} emails.\n"
32: ::ActionMailer::Base.deliveries.each { |m| msg << " '#{m.subject}' sent to #{m.to.to_sentence}\n" }
33: assert ::ActionMailer::Base.deliveries.empty?, msg
34: end
Asserts that an email was delivered. Can take a block that can further narrow down the types of emails you‘re expecting.
assert_sent_email
Passes if ActionMailer::Base.deliveries has an email
assert_sent_email do |email|
email.subject =~ /hi there/ && email.to.include?('none@none.com')
end
Passes if there is an email with subject containing ‘hi there’ and ‘none@none.com’ as one of the recipients.
# File lib/shoulda/action_mailer/assertions.rb, line 18
18: def assert_sent_email
19: emails = ::ActionMailer::Base.deliveries
20: assert !emails.empty?, "No emails were sent"
21: if block_given?
22: matching_emails = emails.select {|email| yield email }
23: assert !matching_emails.empty?, "None of the emails matched."
24: end
25: end