spec/lib/myfinance/response_spec.rb in myfinance-1.6.3 vs spec/lib/myfinance/response_spec.rb in myfinance-1.6.4

- old
+ new

@@ -27,24 +27,38 @@ expect { subject.resolve! }.to raise_error(Myfinance::RequestTimeout) end end context 'when not success neither timeout' do - let(:response) { double(success?: false, timed_out?: false, code: 301, status_message: 'Moved Permanently', body: '') } + let(:headers) do + { + "Date" => "Tue, 17 Apr 2018 15:47:10 GMT", "Expires" => "-1", + "Cache-Control"=>"private, max-age=0" + } + end + let(:response) do + double({ + success?: false, timed_out?: false, code: 301, + status_message: 'Moved Permanently', body: '', + headers: headers + }) + end + it 'raises RequestError' do expect { subject.resolve! }.to raise_error do |error| expect(error).to be_a(Myfinance::RequestError) expect(error.code).to eq(301) expect(error.message).to eq("Moved Permanently") expect(error.body).to eq({}) + expect(error.headers).to eq(headers) end end context "when status_message is empty" do context "when body has an 'error' key" do - let(:response) { double(success?: false, timed_out?: false, code: 301, status_message: '', body: '{"error": "My custom error message"}') } + let(:response) { double(success?: false, timed_out?: false, code: 301, status_message: '', body: '{"error": "My custom error message"}', headers: {}) } it "raises RequestError with custom message" do expect { subject.resolve! }.to raise_error do |error| expect(error).to be_a(Myfinance::RequestError) expect(error.code).to eq(301) @@ -53,10 +67,10 @@ end end end context "when body has an 'error' key" do - let(:response) { double(success?: false, timed_out?: false, code: 301, status_message: '', body: '') } + let(:response) { double(success?: false, timed_out?: false, code: 301, status_message: '', body: '', headers: {}) } it "raises RequestError with empty message" do expect { subject.resolve! }.to raise_error do |error| expect(error).to be_a(Myfinance::RequestError) expect(error.code).to eq(301)