Class: Sidekiq::Sorbet::RSpec::Matchers::HaveArg
- Inherits:
-
Object
- Object
- Sidekiq::Sorbet::RSpec::Matchers::HaveArg
- Defined in:
- lib/sidekiq/sorbet/rspec/matchers.rb
Overview
Matcher for validating a single argument definition
Instance Method Summary collapse
- #description ⇒ Object
- #failure_message ⇒ Object
- #failure_message_when_negated ⇒ Object
-
#initialize(field_name, expected_type = nil) ⇒ HaveArg
constructor
A new instance of HaveArg.
- #matches?(worker_class) ⇒ Boolean
-
#with_default(default_value) ⇒ HaveArg
Chain to check for a specific default value.
Constructor Details
#initialize(field_name, expected_type = nil) ⇒ HaveArg
Returns a new instance of HaveArg.
15 16 17 18 19 20 |
# File 'lib/sidekiq/sorbet/rspec/matchers.rb', line 15 def initialize(field_name, expected_type = nil) @field_name = field_name @expected_type = expected_type @expected_default = nil @check_default = false end |
Instance Method Details
#description ⇒ Object
51 52 53 54 55 56 |
# File 'lib/sidekiq/sorbet/rspec/matchers.rb', line 51 def description desc = "have argument :#{@field_name}" desc += " of type #{@expected_type}" if @expected_type desc += " with default #{@expected_default.inspect}" if @check_default desc end |
#failure_message ⇒ Object
43 44 45 |
# File 'lib/sidekiq/sorbet/rspec/matchers.rb', line 43 def @failure_message || "expected #{@actual} to have argument :#{@field_name}" end |
#failure_message_when_negated ⇒ Object
47 48 49 |
# File 'lib/sidekiq/sorbet/rspec/matchers.rb', line 47 def "expected #{@actual}::Args not to have argument :#{@field_name}" end |
#matches?(worker_class) ⇒ Boolean
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/sidekiq/sorbet/rspec/matchers.rb', line 32 def matches?(worker_class) @actual = worker_class props = fetch_props(worker_class) return false unless field_exists?(worker_class, props) return false unless type_matches?(worker_class, props[@field_name]) return false unless default_matches?(worker_class, props[@field_name]) true end |
#with_default(default_value) ⇒ HaveArg
Chain to check for a specific default value
26 27 28 29 30 |
# File 'lib/sidekiq/sorbet/rspec/matchers.rb', line 26 def with_default(default_value) @expected_default = default_value @check_default = true self end |