Class: Operandi::RSpec::Matchers::TriggerCallbackMatcher

Inherits:
Object
  • Object
show all
Defined in:
lib/operandi/rspec/matchers/trigger_callback.rb

Constant Summary collapse

VALID_CALLBACKS =
[
  :before_service_run,
  :after_service_run,
  :around_service_run,
  :on_service_success,
  :on_service_failure,
  :before_step_run,
  :after_step_run,
  :around_step_run,
  :on_step_success,
  :on_step_failure,
  :on_step_crash,
].freeze
STEP_CALLBACKS =
[
  :before_step_run,
  :after_step_run,
  :around_step_run,
  :on_step_success,
  :on_step_failure,
  :on_step_crash,
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(callback_name) ⇒ TriggerCallbackMatcher

Returns a new instance of TriggerCallbackMatcher.



54
55
56
57
# File 'lib/operandi/rspec/matchers/trigger_callback.rb', line 54

def initialize(callback_name)
  @callback_name = callback_name
  @step_name = nil
end

Instance Method Details

#descriptionObject



93
94
95
96
97
# File 'lib/operandi/rspec/matchers/trigger_callback.rb', line 93

def description
  desc = "trigger callback :#{@callback_name}"
  desc += " for step :#{@step_name}" if @step_name
  desc
end

#failure_messageObject



73
74
75
76
77
78
79
80
81
82
83
# File 'lib/operandi/rspec/matchers/trigger_callback.rb', line 73

def failure_message
  return tracking_not_available_message unless service_tracks_callbacks?

  if @step_name
    "expected service to trigger callback :#{@callback_name} for step :#{@step_name}, " \
      "but callback log was: #{callback_log.inspect}"
  else
    "expected service to trigger callback :#{@callback_name}, " \
      "but callback log was: #{callback_log.inspect}"
  end
end

#failure_message_when_negatedObject



85
86
87
88
89
90
91
# File 'lib/operandi/rspec/matchers/trigger_callback.rb', line 85

def failure_message_when_negated
  if @step_name
    "expected service not to trigger callback :#{@callback_name} for step :#{@step_name}"
  else
    "expected service not to trigger callback :#{@callback_name}"
  end
end

#for_step(step_name) ⇒ Object



59
60
61
62
# File 'lib/operandi/rspec/matchers/trigger_callback.rb', line 59

def for_step(step_name)
  @step_name = step_name
  self
end

#matches?(service) ⇒ Boolean

Returns:

  • (Boolean)


64
65
66
67
68
69
70
71
# File 'lib/operandi/rspec/matchers/trigger_callback.rb', line 64

def matches?(service)
  @service = service

  return false unless service_tracks_callbacks?
  return false unless callback_triggered?

  true
end