diff --git a/lib/webmock/http_lib_adapters/http_rb/streamer.rb b/lib/webmock/http_lib_adapters/http_rb/streamer.rb index 3a70c443..ab6186c1 100644 --- a/lib/webmock/http_lib_adapters/http_rb/streamer.rb +++ b/lib/webmock/http_lib_adapters/http_rb/streamer.rb @@ -25,6 +25,10 @@ def close @io.close end + def finished_request? + @io.eof? + end + def sequence_id -1 end diff --git a/spec/acceptance/http_rb/http_rb_spec.rb b/spec/acceptance/http_rb/http_rb_spec.rb index dd600a5d..e96bbf51 100644 --- a/spec/acceptance/http_rb/http_rb_spec.rb +++ b/spec/acceptance/http_rb/http_rb_spec.rb @@ -89,6 +89,20 @@ response.connection.close end + + it "reports request finish" do + stub_request(:get, "example.com/foo") + .to_return(body: 'XX') + response = HTTP.get "http://example.com/foo" + + expect(response.connection.finished_request?).to be(false) + + response.body.readpartial(1) + expect(response.connection.finished_request?).to be(false) + + response.body.readpartial + expect(response.connection.finished_request?).to be(true) + end end it "should preserve request body encoding when matching requests" do