From 57266360b74af8aeb2b55aac7d273471fa7b57be Mon Sep 17 00:00:00 2001 From: James Brown Date: Fri, 13 Oct 2023 17:23:28 -0700 Subject: [PATCH] Set Typhoeus timing fields when constructing Response objects --- .../typhoeus_hydra_adapter.rb | 18 ++++++++++++++++-- .../acceptance/typhoeus/typhoeus_hydra_spec.rb | 9 +++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb b/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb index 352a762d5..a56fda339 100644 --- a/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb +++ b/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb @@ -96,7 +96,14 @@ def self.generate_typhoeus_response(request_signature, webmock_response) status_message: "", body: "", headers: {}, - return_code: :operation_timedout + return_code: :operation_timedout, + total_time: 0.0, + starttransfer_time: 0.0, + appconnect_time: 0.0, + pretransfer_time: 0.0, + connect_time: 0.0, + namelookup_time: 0.0, + redirect_time: 0.0 ) else ::Typhoeus::Response.new( @@ -104,7 +111,14 @@ def self.generate_typhoeus_response(request_signature, webmock_response) status_message: webmock_response.status[1], body: webmock_response.body, headers: webmock_response.headers, - effective_url: request_signature.uri + effective_url: request_signature.uri, + total_time: 0.0, + starttransfer_time: 0.0, + appconnect_time: 0.0, + pretransfer_time: 0.0, + connect_time: 0.0, + namelookup_time: 0.0, + redirect_time: 0.0 ) end response.mock = :webmock diff --git a/spec/acceptance/typhoeus/typhoeus_hydra_spec.rb b/spec/acceptance/typhoeus/typhoeus_hydra_spec.rb index 7e33bcc4f..a021d47a9 100644 --- a/spec/acceptance/typhoeus/typhoeus_hydra_spec.rb +++ b/spec/acceptance/typhoeus/typhoeus_hydra_spec.rb @@ -29,6 +29,15 @@ expect(response.body).not_to be_nil expect(response.headers).not_to be_nil expect(response.effective_url).not_to be_nil + expect(response.total_time).to eq 0.0 + expect(response.time).to eq 0.0 # aliased by Typhoeus::Response::Informations + expect(response.starttransfer_time).to eq 0.0 + expect(response.start_transfer_time).to eq 0.0 # aliased by Typhoeus::Response::Informations + expect(response.appconnect_time).to eq 0.0 + expect(response.pretransfer_time).to eq 0.0 + expect(response.connect_time).to eq 0.0 + expect(response.namelookup_time).to eq 0.0 + expect(response.redirect_time).to eq 0.0 end end