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 57 58 59 60 61 62 63 64 65 66 67 68
|
require 'spec_helper'
require 'vcr/library_hooks/faraday'
describe "Faraday hook" do
xit 'inserts the VCR middleware just before the adapter' do
conn = Faraday.new(:url => 'http://sushi.com') do |builder|
builder.request :url_encoded
builder.response :logger
builder.adapter :net_http
end
conn.builder.lock!
expect(conn.builder.handlers.last(2).map(&:klass)).to eq([
VCR::Middleware::Faraday,
Faraday::Adapter::NetHttp
])
end
xit 'handles the case where no adapter is declared' do
conn = Faraday.new
conn.builder.lock!
expect(conn.builder.handlers.last(2).map(&:klass)).to eq([
VCR::Middleware::Faraday,
Faraday::Adapter::NetHttp
])
end
xit 'does nothing if the VCR middleware has already been included' do
conn = Faraday.new(:url => 'http://sushi.com') do |builder|
builder.use VCR::Middleware::Faraday
builder.use Faraday::Response::Logger
builder.use Faraday::Adapter::NetHttp
end
conn.builder.lock!
expect(conn.builder.handlers.map(&:klass)).to eq([
VCR::Middleware::Faraday,
Faraday::Response::Logger,
Faraday::Adapter::NetHttp
])
end
xit 'prints a warning if the faraday connection stack contains a middleware after the HTTP adapter' do
conn = Faraday.new(:url => 'http://sushi.com') do |builder|
builder.use Faraday::Adapter::NetHttp
builder.use Faraday::Response::Logger
end
expect(conn.builder).to receive(:warn).with(/Faraday::Response::Logger/)
conn.builder.lock!
end
it 'gracefully handles the case where there is no explicit HTTP adapter' do
conn = Faraday.new(:url => 'http://sushi.com') do |builder|
builder.request :url_encoded
builder.response :logger
end
conn.builder.lock!
expect(conn.builder.handlers.map(&:klass)).to eq([
Faraday::Request::UrlEncoded,
Faraday::Response::Logger,
VCR::Middleware::Faraday
])
end
end
|