module Capybara::Email::DSL

Attributes

current_email[RW]

Returns the currently set email. If no email set will return nil.

@return [Mail::Message, nil]

current_emails[RW]

Public Instance Methods

all_emails() click to toggle source

Access all emails

@return [Array]

# File lib/capybara/email/dsl.rb, line 13
def all_emails
  Mail::TestMailer.deliveries
end
clear_email()
Alias for: clear_emails
clear_emails() click to toggle source

Clear the email queue

# File lib/capybara/email/dsl.rb, line 47
def clear_emails
  all_emails.clear
  self.current_emails = nil
  self.current_email  = nil
end
Also aliased as: clear_email
emails_sent_to(recipient) click to toggle source

Access all emails for a recipient.

@param [String]

@return [Array<Mail::Message>]

# File lib/capybara/email/dsl.rb, line 22
def emails_sent_to(recipient)
  self.current_emails = all_emails.select { |email| [email.to, email.cc, email.bcc].flatten.compact.include?(recipient) }.map do |email|
    driver = Capybara::Email::Driver.new(email)
    Capybara::Node::Email.new(Capybara.current_session, driver)
  end
end
first_email_sent_to(recipient) click to toggle source

Access the first email for a recipient and set it to.

@param [String]

@return [Mail::Message]

# File lib/capybara/email/dsl.rb, line 34
def first_email_sent_to(recipient)
  self.current_email = emails_sent_to(recipient).last
end
Also aliased as: open_email
open_email(recipient)
Alias for: first_email_sent_to