Class: RSpec::Sidekiq::Matchers::HaveJobOptions
- Inherits:
-
Object
- Object
- RSpec::Sidekiq::Matchers::HaveJobOptions
- Includes:
- JobOptionNormalization
- Defined in:
- lib/rspec/sidekiq/matchers/have_job_options.rb
Instance Method Summary collapse
- #description ⇒ Object
- #failure_message ⇒ Object
- #failure_message_when_negated ⇒ Object
-
#initialize(options) ⇒ HaveJobOptions
constructor
A new instance of HaveJobOptions.
- #matches?(job) ⇒ Boolean
Constructor Details
#initialize(options) ⇒ HaveJobOptions
Returns a new instance of HaveJobOptions.
77 78 79 |
# File 'lib/rspec/sidekiq/matchers/have_job_options.rb', line 77 def initialize() @expected_options = normalize_value() end |
Instance Method Details
#description ⇒ Object
81 82 83 |
# File 'lib/rspec/sidekiq/matchers/have_job_options.rb', line 81 def description "have sidekiq options #{formatted(@expected_options)}" end |
#failure_message ⇒ Object
106 107 108 109 110 111 |
# File 'lib/rspec/sidekiq/matchers/have_job_options.rb', line 106 def parts = ["expected #{@klass} to have sidekiq options #{formatted(@expected_options)}"] parts << "missing #{formatted(@missing_keys)}" if @missing_keys.any? parts << "mismatched #{formatted(@mismatched)}" if @mismatched.any? parts.join(" but ") end |
#failure_message_when_negated ⇒ Object
113 114 115 |
# File 'lib/rspec/sidekiq/matchers/have_job_options.rb', line 113 def "expected #{@klass} to not have sidekiq options #{formatted(@expected_options)}" end |
#matches?(job) ⇒ Boolean
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/rspec/sidekiq/matchers/have_job_options.rb', line 85 def matches?(job) @klass = job.is_a?(Class) ? job : job.class @options = @klass. @missing_keys = [] @mismatched = {} @expected_options.each do |key, value| unless @options.key?(key) @missing_keys << key next end actual_value = @options[key] next if RSpec::Support::FuzzyMatcher.values_match?(value, actual_value) @mismatched[key] = actual_value end @missing_keys.empty? && @mismatched.empty? end |