Module: ServiceSupport

Defined in:
lib/service_base/rspec/service_support.rb

Instance Method Summary collapse

Instance Method Details

#stub_service_failure(service_class, failure:, matched: false) ⇒ Object

Note that you must have at least one on.success and one on.failure matcher for each block-style service call. Set ‘matched: true` for specific `on.failure(:error)` blocks. Set `matched: true` for catch-all on.failure blocks.



19
20
21
22
23
24
25
# File 'lib/service_base/rspec/service_support.rb', line 19

def stub_service_failure(service_class, failure:, matched: false)
  block = double(:on)
  allow(block).to receive(:success)

  setup_failure_stub(block, failure, matched)
  allow(service_class).to receive(:call).and_yield(block)
end

#stub_service_success(service_class, success: nil, success_nil: false) ⇒ Object

Note that you must have at least one on.success and one on.failure matcher for each block-style service call



6
7
8
9
10
11
12
13
# File 'lib/service_base/rspec/service_support.rb', line 6

def stub_service_success(service_class, success: nil, success_nil: false)
  block = double(:on)
  allow(block).to receive(:failure)

  yield_value = determine_success_yield_value(success, success_nil)
  allow(block).to receive(:success) { |&block_proc| call_with_flexible_params(block_proc, yield_value) }
  allow(service_class).to receive(:call).and_yield(block)
end