diff --git a/lib/rapidash/http_client.rb b/lib/rapidash/http_client.rb index 35f7f73..c6fe3da 100644 --- a/lib/rapidash/http_client.rb +++ b/lib/rapidash/http_client.rb @@ -4,7 +4,7 @@ module Rapidash module HTTPClient - attr_accessor :login, :password, :request_default_options + attr_accessor :login, :password, :request_default_options, :response attr_writer :connection # Provide login and password fields for basic HTTP authentication @@ -32,9 +32,9 @@ def connection def request(verb, url, options = {}) options.merge!(self.request_default_options) if self.request_default_options url = connection.build_url(normalize_url(url), options[:params]).to_s - response = connection.run_request(verb, url, options[:body], options[:header]) + self.response = connection.run_request(verb, url, options[:body], options[:header]) - response.body + self.response.body end end end diff --git a/spec/rapidash/http_client_spec.rb b/spec/rapidash/http_client_spec.rb index 04198c9..4a17338 100644 --- a/spec/rapidash/http_client_spec.rb +++ b/spec/rapidash/http_client_spec.rb @@ -67,6 +67,13 @@ def self.raise_error subject.request(:get, "foo") end + it "should store response" do + response = double(:body => "response") + allow(subject.connection).to receive(:run_request).with(:get, "http://example.com/foo", nil, nil).and_return(response) + subject.request(:get, "foo") + expect(subject.response).to eq(response) + end + describe "default options" do let!(:subject) { HTTPTester.new(request_default_options: { header: { user_agent: 'New app v1.0'} } ) }