spec/outputs/http_spec.rb in logstash-output-http-5.7.0 vs spec/outputs/http_spec.rb in logstash-output-http-5.7.1

- old
+ new

@@ -253,11 +253,11 @@ before do subject.multi_receive(events) end let(:last_request) { TestApp.last_request } - let(:body) { last_request.body.read } + let(:body) { read_last_request_body(last_request) } let(:content_type) { last_request.env["CONTENT_TYPE"] } it "should receive the request" do expect(last_request).to be_truthy end @@ -456,11 +456,11 @@ before { subject.register } after { subject.close } let(:last_request) { TestApp.last_request } - let(:last_request_body) { last_request.body.read } + let(:last_request_body) { read_last_request_body(last_request) } let(:event) { LogStash::Event.new("message" => "hello!") } context 'with default (full) verification' do @@ -528,5 +528,12 @@ end end if tls_version_enabled_by_default?('TLSv1.3') && JOpenSSL::VERSION > '0.12' # due WEBrick uses OpenSSL end + +# Pre-emptively rewind the retrieval of `last_request.body` - for form based endpoints, the body +# is placed in params, and body is empty, requiring a `rewind` for the body to be available for comparison +def read_last_request_body(last_request) + last_request.body.rewind + last_request.body.read +end \ No newline at end of file