Class: Ace::TestSupport::Fixtures::HTTPMocks::MockHTTPClient
- Inherits:
-
Object
- Object
- Ace::TestSupport::Fixtures::HTTPMocks::MockHTTPClient
- Defined in:
- lib/ace/test_support/fixtures/http_mocks.rb
Overview
Mock HTTP client for testing API interactions Simulates HTTP requests without making actual network calls
Instance Attribute Summary collapse
-
#last_request ⇒ Object
readonly
Returns the value of attribute last_request.
-
#request_history ⇒ Object
readonly
Returns the value of attribute request_history.
Instance Method Summary collapse
-
#initialize ⇒ MockHTTPClient
constructor
A new instance of MockHTTPClient.
-
#post(url, body, headers: {}) ⇒ MockResponse
Simulate a POST request.
-
#reset! ⇒ Object
Reset the mock client state.
-
#set_error_response(status, message) ⇒ Object
Set an error response.
-
#set_response(body) ⇒ Object
Set a successful response.
Constructor Details
#initialize ⇒ MockHTTPClient
Returns a new instance of MockHTTPClient.
16 17 18 19 20 21 |
# File 'lib/ace/test_support/fixtures/http_mocks.rb', line 16 def initialize @response = nil @error_response = nil @last_request = nil @request_history = [] end |
Instance Attribute Details
#last_request ⇒ Object (readonly)
Returns the value of attribute last_request.
14 15 16 |
# File 'lib/ace/test_support/fixtures/http_mocks.rb', line 14 def last_request @last_request end |
#request_history ⇒ Object (readonly)
Returns the value of attribute request_history.
14 15 16 |
# File 'lib/ace/test_support/fixtures/http_mocks.rb', line 14 def request_history @request_history end |
Instance Method Details
#post(url, body, headers: {}) ⇒ MockResponse
Simulate a POST request
43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/ace/test_support/fixtures/http_mocks.rb', line 43 def post(url, body, headers: {}) @last_request = {url: url, body: body, headers: headers} @request_history << @last_request if @error_response MockResponse.new( success: false, status: @error_response[:status], body: {"error" => {"message" => @error_response[:message], "type" => "api_error"}} ) else MockResponse.new(success: true, status: 200, body: @response) end end |
#reset! ⇒ Object
Reset the mock client state
59 60 61 62 63 64 |
# File 'lib/ace/test_support/fixtures/http_mocks.rb', line 59 def reset! @response = nil @error_response = nil @last_request = nil @request_history = [] end |
#set_error_response(status, message) ⇒ Object
Set an error response
33 34 35 36 |
# File 'lib/ace/test_support/fixtures/http_mocks.rb', line 33 def set_error_response(status, ) @error_response = {status: status, message: } @response = nil end |
#set_response(body) ⇒ Object
Set a successful response
25 26 27 28 |
# File 'lib/ace/test_support/fixtures/http_mocks.rb', line 25 def set_response(body) @response = body @error_response = nil end |