Class: ActiveMail::Quality::Rspec::ValidEmailMatcher

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/activemail/quality/rspec.rb

Overview

Standalone matcher object — testable without booting RSpec. The be_a_valid_email helper below just returns it (no RSpec::Matchers.define DSL).

Instance Method Summary collapse

Constructor Details

#initialize(guard: ActiveMail::Quality.guard) ⇒ ValidEmailMatcher

Returns a new instance of ValidEmailMatcher.



15
16
17
18
# File 'lib/activemail/quality/rspec.rb', line 15

def initialize(guard: ActiveMail::Quality.guard)
  @guard = T.let(guard, Guard)
  @violations = T.let([], T::Array[Guard::Violation])
end

Instance Method Details

#descriptionObject



37
38
39
# File 'lib/activemail/quality/rspec.rb', line 37

def description
  'be a valid email'
end

#failure_messageObject



27
28
29
# File 'lib/activemail/quality/rspec.rb', line 27

def failure_message
  "expected email HTML to be valid, but found violations:\n#{formatted_violations}"
end

#failure_message_when_negatedObject



32
33
34
# File 'lib/activemail/quality/rspec.rb', line 32

def failure_message_when_negated
  'expected email HTML to have quality violations, but it was valid'
end

#matches?(html) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
24
# File 'lib/activemail/quality/rspec.rb', line 21

def matches?(html)
  @violations = @guard.violations(html)
  @violations.empty?
end