1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
# frozen_string_literal: true
if ENV['COVERAGE']
require 'simplecov'
SimpleCov.start do
# add_filter 'faraday_middleware.rb'
add_filter 'backwards_compatibility.rb'
end
end
require 'rspec'
require 'webmock/rspec'
require 'faraday'
require 'faraday_middleware'
module EnvCompatibility
def faraday_env(env)
if defined?(Faraday::Env)
Faraday::Env.from(env)
else
env
end
end
end
module ResponseMiddlewareExampleGroup
def self.included(base)
base.let(:options) { {} }
base.let(:headers) { {} }
base.let(:middleware) do
described_class.new(lambda { |env|
Faraday::Response.new(env)
}, options)
end
end
def process(body, content_type = nil, options = {})
env = {
body: body, request: options,
request_headers: Faraday::Utils::Headers.new,
response_headers: Faraday::Utils::Headers.new(headers)
}
env[:response_headers]['content-type'] = content_type if content_type
yield(env) if block_given?
middleware.call(faraday_env(env))
end
end
RSpec.configure do |config|
config.include EnvCompatibility
config.include ResponseMiddlewareExampleGroup, type: :response
config.expect_with :rspec do |c|
c.syntax = :expect
end
config.disable_monkey_patching!
end
|