Module: EmailSpec::Matchers
- Defined in:
- lib/email_spec/matchers.rb
Defined Under Namespace
Classes: DeliverTo
Instance Method Summary collapse
- #deliver_to(*expected_email_addresses_or_objects_that_respond_to_email) ⇒ Object (also: #be_delivered_to)
- #have_body_text(expected) ⇒ Object
- #have_header(expected_name, expected_value) ⇒ Object
- #have_subject(expected) ⇒ Object
- #include_email_with_subject(expected) ⇒ Object
Instance Method Details
#deliver_to(*expected_email_addresses_or_objects_that_respond_to_email) ⇒ Object Also known as: be_delivered_to
34 35 36 |
# File 'lib/email_spec/matchers.rb', line 34 def deliver_to(*expected_email_addresses_or_objects_that_respond_to_email) DeliverTo.new(expected_email_addresses_or_objects_that_respond_to_email.flatten) end |
#have_body_text(expected) ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/email_spec/matchers.rb', line 79 def have_body_text(expected) simple_matcher do |given, matcher| if expected.is_a?(String) normalized_body = given.body.gsub(/\s+/, " ") normalized_expected = expected.gsub(/\s+/, " ") matcher.description = "have body including #{normalized_expected.inspect}" matcher. = "expected the body to contain #{normalized_expected.inspect} but was #{normalized_body.inspect}" matcher. = "expected the body not to contain #{normalized_expected.inspect} but was #{normalized_body.inspect}" normalized_body.include?(normalized_expected) else given_body = given.body matcher.description = "have body matching #{expected.inspect}" matcher. = "expected the body to match #{expected.inspect}, but did not. Actual body was: #{given_body.inspect}" matcher. = "expected the body not to match #{expected.inspect} but #{given_body.inspect} does match it." !!(given_body =~ expected) end end end |
#have_header(expected_name, expected_value) ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/email_spec/matchers.rb', line 101 def have_header(expected_name, expected_value) simple_matcher do |given, matcher| given_header = given.header if expected_value.is_a?(String) matcher.description = "have header #{expected_name}: #{expected_value}" matcher. = "expected the headers to include '#{expected_name}: #{expected_value}' but they were #{given_header.inspect}" matcher. = "expected the headers not to include '#{expected_name}: #{expected_value}' but they were #{given_header.inspect}" given_header[expected_name].to_s == expected_value else matcher.description = "have header #{expected_name} with value matching #{expected_value.inspect}" matcher. = "expected the headers to include '#{expected_name}' with a value matching #{expected_value.inspect} but they were #{given_header.inspect}" matcher. = "expected the headers not to include '#{expected_name}' with a value matching #{expected_value.inspect} but they were #{given_header.inspect}" given_header[expected_name].to_s =~ expected_value end end end |
#have_subject(expected) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/email_spec/matchers.rb', line 40 def have_subject(expected) simple_matcher do |given, matcher| given_subject = given.subject if expected.is_a?(String) matcher.description = "have subject of #{expected.inspect}" matcher. = "expected the subject to be #{expected.inspect} but was #{given_subject.inspect}" matcher. = "expected the subject not to be #{expected.inspect} but was" given_subject == expected else matcher.description = "have subject matching #{expected.inspect}" matcher. = "expected the subject to match #{expected.inspect}, but did not. Actual subject was: #{given_subject.inspect}" matcher. = "expected the subject not to match #{expected.inspect} but #{given_subject.inspect} does match it." !!(given_subject =~ expected) end end end |
#include_email_with_subject(expected) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/email_spec/matchers.rb', line 60 def include_email_with_subject(expected) simple_matcher do |given_emails, matcher| if expected.is_a?(String) matcher.description = "include email with subject of #{expected.inspect}" matcher. = "expected at least one email to have the subject #{expected.inspect} but none did. Subjects were #{given_emails.map(&:subject).inspect}" matcher. = "expected no email with the subject #{expected.inspect} but found at least one. Subjects were #{given_emails.map(&:subject).inspect}" given_emails.map(&:subject).include?(expected) else matcher.description = "include email with subject matching #{expected.inspect}" matcher. = "expected at least one email to have a subject matching #{expected.inspect}, but none did. Subjects were #{given_emails.map(&:subject).inspect}" matcher. = "expected no email to have a subject matching #{expected.inspect} but found at least one. Subjects were #{given_emails.map(&:subject).inspect}" !!(given_emails.any?{ |mail| mail.subject =~ expected }) end end end |