Files
openproject/spec/httpx_spec.rb
Jan Sandbrink 0b87e7543f Freeze string literals in specs
Rolling out frozen string literals further by freezing all
string literals in core specs.
2025-05-05 09:29:55 +02:00

37 lines
1019 B
Ruby

# frozen_string_literal: true
require "webrick"
require "httpx"
RSpec.describe "HTTPX" do
describe "persistent connections" do
it "does not hang forever when used to request HTTP 1.1 server" do
server = WEBrick::HTTPServer.new(
Port: 0,
Logger: WEBrick::Log.new(StringIO.new),
AccessLog: []
)
server.mount_proc "/" do |_req, res|
res.body = "Response Body"
end
port = server.listeners[0].addr[1]
Thread.new { server.start }
session = HTTPX.plugin(:persistent).with(timeout: { keep_alive_timeout: 2 })
number_of_requests_made = 0
begin
Timeout.timeout(10) do
session.post("http://localhost:#{port}").raise_for_status
number_of_requests_made += 1
sleep 4
session.post("http://localhost:#{port}").raise_for_status
number_of_requests_made += 1
end
ensure
expect(number_of_requests_made).to eq(2)
server.shutdown
end
end
end
end