Use instance_double for Poseidon Strategy specs
This commit is contained in:
@ -108,7 +108,9 @@ describe Runner::Strategy::Poseidon do
|
|||||||
let(:response_status) { -1 }
|
let(:response_status) { -1 }
|
||||||
|
|
||||||
it 'raises an error' do
|
it 'raises an error' do
|
||||||
%i[post patch delete].each {|message| allow(Faraday).to receive(message).and_raise(Faraday::TimeoutError) }
|
faraday_connection = instance_double 'Faraday::Connection'
|
||||||
|
allow(Faraday).to receive(:new).and_return(faraday_connection)
|
||||||
|
%i[post patch delete].each {|message| allow(faraday_connection).to receive(message).and_raise(Faraday::TimeoutError) }
|
||||||
expect { action.call }.to raise_error(Runner::Error::FaradayError)
|
expect { action.call }.to raise_error(Runner::Error::FaradayError)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -119,9 +121,11 @@ describe Runner::Strategy::Poseidon do
|
|||||||
let(:execution_environment) { FactoryBot.create(:ruby) }
|
let(:execution_environment) { FactoryBot.create(:ruby) }
|
||||||
|
|
||||||
it 'makes the correct request to Poseidon' do
|
it 'makes the correct request to Poseidon' do
|
||||||
allow(Faraday).to receive(:put).and_return(Faraday::Response.new(status: 201))
|
faraday_connection = instance_double 'Faraday::Connection'
|
||||||
|
allow(Faraday).to receive(:new).and_return(faraday_connection)
|
||||||
|
allow(faraday_connection).to receive(:put).and_return(Faraday::Response.new(status: 201))
|
||||||
action.call
|
action.call
|
||||||
expect(Faraday).to have_received(:put) do |url, body, headers|
|
expect(faraday_connection).to have_received(:put) do |url, body, headers|
|
||||||
expect(url).to match(%r{execution-environments/#{execution_environment.id}\z})
|
expect(url).to match(%r{execution-environments/#{execution_environment.id}\z})
|
||||||
expect(body).to eq(execution_environment.to_json)
|
expect(body).to eq(execution_environment.to_json)
|
||||||
expect(headers).to include({'Content-Type' => 'application/json'})
|
expect(headers).to include({'Content-Type' => 'application/json'})
|
||||||
@ -130,14 +134,18 @@ describe Runner::Strategy::Poseidon do
|
|||||||
|
|
||||||
shared_examples 'returns true when the api request was successful' do |status|
|
shared_examples 'returns true when the api request was successful' do |status|
|
||||||
it "returns true on status #{status}" do
|
it "returns true on status #{status}" do
|
||||||
allow(Faraday).to receive(:put).and_return(Faraday::Response.new(status: status))
|
faraday_connection = instance_double 'Faraday::Connection'
|
||||||
|
allow(Faraday).to receive(:new).and_return(faraday_connection)
|
||||||
|
allow(faraday_connection).to receive(:put).and_return(Faraday::Response.new(status: status))
|
||||||
expect(action.call).to be_truthy
|
expect(action.call).to be_truthy
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
shared_examples 'returns false when the api request failed' do |status|
|
shared_examples 'returns false when the api request failed' do |status|
|
||||||
it "returns false on status #{status}" do
|
it "returns false on status #{status}" do
|
||||||
allow(Faraday).to receive(:put).and_return(Faraday::Response.new(status: status))
|
faraday_connection = instance_double 'Faraday::Connection'
|
||||||
|
allow(Faraday).to receive(:new).and_return(faraday_connection)
|
||||||
|
allow(faraday_connection).to receive(:put).and_return(Faraday::Response.new(status: status))
|
||||||
expect(action.call).to be_falsey
|
expect(action.call).to be_falsey
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -151,7 +159,9 @@ describe Runner::Strategy::Poseidon do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it 'returns false if Faraday raises an error' do
|
it 'returns false if Faraday raises an error' do
|
||||||
allow(Faraday).to receive(:put).and_raise(Faraday::TimeoutError)
|
faraday_connection = instance_double 'Faraday::Connection'
|
||||||
|
allow(Faraday).to receive(:new).and_return(faraday_connection)
|
||||||
|
allow(faraday_connection).to receive(:put).and_raise(Faraday::TimeoutError)
|
||||||
expect(action.call).to be_falsey
|
expect(action.call).to be_falsey
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user