From 2c4d1c01d6780e7cb1a9e6ac093b3bf8fb04e4df Mon Sep 17 00:00:00 2001 From: Reed Emmons Date: Mon, 22 Jun 2026 16:50:29 -0400 Subject: [PATCH] ENG-4325: Guard nil rack.input for Rack 3 compatibility --- lib/rspec_api_documentation/client_base.rb | 2 ++ lib/rspec_api_documentation/test_server.rb | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/rspec_api_documentation/client_base.rb b/lib/rspec_api_documentation/client_base.rb index db0560a3..dec5b49d 100644 --- a/lib/rspec_api_documentation/client_base.rb +++ b/lib/rspec_api_documentation/client_base.rb @@ -45,6 +45,8 @@ def process(method, path, params = {}, headers ={}) def read_request_body input = last_request.env["rack.input"] + return "" if input.nil? + input.rewind input.read end diff --git a/lib/rspec_api_documentation/test_server.rb b/lib/rspec_api_documentation/test_server.rb index 9a89ba0b..1074265e 100644 --- a/lib/rspec_api_documentation/test_server.rb +++ b/lib/rspec_api_documentation/test_server.rb @@ -8,11 +8,11 @@ class TestServer < Struct.new(:example) def call(env) input = env["rack.input"] - input.rewind + input.rewind unless input.nil? @request_method = env["REQUEST_METHOD"] @request_headers = env_to_headers(env) - @request_body = input.read + @request_body = input.nil? ? "" : input.read request_metadata = {}