Sha256: 9afb1075581e7bdb2c8cb7249d6599fff79159e6d3aadae4a5b8cd1bea3c7a9a

Contents?: true

Size: 1.07 KB

Versions: 3

Compression:

Stored size: 1.07 KB

Contents

require 'faraday'

module FaradayStub
  def stub_request(connection)
    unless connection.options[:stubs]
      # Inject Faraday::Adapter::Test and rebuild the app
      connection.instance_variable_set(:@app, nil)
      index = connection.builder.handlers.size - 1
      stubs = Faraday::Adapter::Test::Stubs.new
      connection.builder.swap index, Faraday::Adapter::Test, stubs
      connection.options[:stubs] = stubs
    end

    yield connection.options[:stubs] if block_given?
  end

  alias_method :stub_connection, :stub_request

  def stub_get(connection, path, &block)
    stub_request(connection) do |stubs|
      stubs.get(path, &block)
    end
  end

  def stub_post(connection, path, body = nil, &block)
    stub_request(connection) do |stubs|
      stubs.post(path, body, &block)
    end
  end

  def stub_put(connection, path, body = nil, &block)
    stub_request(connection) do |stubs|
      stubs.put(path, body, &block)
    end
  end

  def stub_delete(connection, path, &block)
    stub_request(connection) do |stubs|
      stubs.delete(path, &block)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tango-client-1.0.2 spec/support/faraday_stub.rb
tango-client-1.0.1 spec/support/faraday_stub.rb
tango-client-1.0.0 spec/support/faraday_stub.rb