Module: UseCaseStubber

Defined in:
lib/generators/rider_kick/templates/spec/support/use_case_stubber.rb

Instance Method Summary collapse

Instance Method Details

#stub_use_case(use_case, expected_output, response: :success) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/generators/rider_kick/templates/spec/support/use_case_stubber.rb', line 4

def stub_use_case(use_case, expected_output, response: :success)
  mock_fetcher = instance_double(use_case)
  allow(use_case).to(receive(:contract!).and_return(true))
  allow(use_case).to(receive(:new).and_return(mock_fetcher))
  if response.to_s.eql?('success')
    allow(mock_fetcher).to receive(:result).and_return(Dry::Monads::Success(expected_output))
  else
    allow(mock_fetcher).to receive(:result).and_return(Dry::Monads::Failure(expected_output))
  end
end