webmock 3.21.0 → 3.21.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 824b2fb63d4d765d0aabc45c9b9aefe1c686021b2d2268af07cc584692f763c6
4
- data.tar.gz: '05579b98d43c99f9adc01a7d7c1f991f9c254b958b5df340f458d127cd15c291'
3
+ metadata.gz: ad4b861d9b998186e2b85f1da5e35dce4451d13d16822cf35f42d52fbce40de0
4
+ data.tar.gz: e7395eb84a1688a56f6916b4a58992cf1a88bcee695eb2e7f015260d33d3c677
5
5
  SHA512:
6
- metadata.gz: 5666ec34890824cafb1a60c5ba631d3054c72d6a587308ae58c48f7f46754a3286e75f089b49f71c68857afee8bfc40a093558cecb38af80b2fd6e3faee95f69
7
- data.tar.gz: 62488bf922c53c46a76699c84ba0d42bcc6156bd82c67064bdd595bfbc9650879df813c6cb7c61db0ef99f80d831da388a2ea84f359e3b47f8c18d4d4310cba0
6
+ metadata.gz: 1599e16d961cf7a5a87fe2ac9030cd33ccb5d20d645832e317a36cbad45e4d4836cd506016d0f5a5a5ee69c502e7993ed8a33c6fce080b9a40aa5626f2a212b5
7
+ data.tar.gz: 044b1c3bc0ec98535f4949649984b33475390a1f5b4213abba21a61c357d93173088214c3e5dd4ef943ac21800485cd078ad5ef2bc722c7563c9fa8b5fd80ea5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ # 3.21.2
4
+
5
+ * Corrected type checking in `WebMock::Response#assert_valid_body!` to accurately recognize `Hash` objects. Additionally, improved the clarity of the error message for unsupported body types, guiding users towards proper usage.
6
+
7
+ Thanks to [Jake Robb](https://github.com/jakerobb) for reporting.
8
+
9
+ # 3.21.1
10
+
11
+ * The stubbed Net::HTTPResponse#uri now returns request.uri, aligning it with the behavior of an actual Net::HTTPResponse.
12
+
13
+ Thanks to [Abe Voelker](https://github.com/abevoelker) for reporting and to [Victor Maslov](https://github.com/Nakilon) and [Gio Lodi](https://github.com/mokagio) for the suggested solution.
14
+
3
15
  # 3.21.0
4
16
 
5
17
  * Don't use deprecated Rack::VERSION for Rack >= 3
@@ -188,7 +200,7 @@
188
200
 
189
201
  * Fixed async-http adapter to only considered requests as real if they are real.
190
202
 
191
- Thanks to Thanks to [Tony Schneider](https://github.com/tonywok) and [Samuel Williams](https://github.com/ioquatix)
203
+ Thanks to [Tony Schneider](https://github.com/tonywok) and [Samuel Williams](https://github.com/ioquatix)
192
204
 
193
205
  # 3.11.2
194
206
 
data/README.md CHANGED
@@ -606,7 +606,11 @@ which can be passed to `WebMock.allow_net_connect!` and `WebMock.disable_net_con
606
606
  WebMock.allow_net_connect!(net_http_connect_on_start: true)
607
607
  ```
608
608
 
609
- This forces WebMock Net::HTTP adapter to always connect on `Net::HTTP.start`.
609
+ This forces WebMock Net::HTTP adapter to always connect on `Net::HTTP.start`. At the time of connection being made there is no information about the request or URL yet, therefore WebMock is not able to decide whether to stub a request or not and all connections are allowed. To enable connections only to a specific domain (e.g. your test server) use:
610
+
611
+ ```ruby
612
+ WebMock.allow_net_connect!(net_http_connect_on_start: "www.example.com")
613
+ ```
610
614
 
611
615
  ## Setting Expectations
612
616
 
@@ -1195,6 +1199,9 @@ People who submitted patches and new features or suggested improvements. Many th
1195
1199
  * Kazuhiro NISHIYAMA
1196
1200
  * Étienne Barrié
1197
1201
  * Matt Brown
1202
+ * Victor Maslov
1203
+ * Gio Lodi
1204
+ * Ryan Brooks
1198
1205
 
1199
1206
  For a full list of contributors you can visit the
1200
1207
  [contributors](https://github.com/bblimke/webmock/contributors) page.
@@ -77,7 +77,7 @@ module WebMock
77
77
  @socket = Net::HTTP.socket_type.new
78
78
  WebMock::CallbackRegistry.invoke_callbacks(
79
79
  {lib: :net_http}, request_signature, webmock_response)
80
- build_net_http_response(webmock_response, &block)
80
+ build_net_http_response(webmock_response, request.uri, &block)
81
81
  elsif WebMock.net_connect_allowed?(request_signature.uri)
82
82
  check_right_http_connection
83
83
  after_request = lambda do |response|
@@ -144,7 +144,7 @@ module WebMock
144
144
  end
145
145
  end
146
146
 
147
- def build_net_http_response(webmock_response, &block)
147
+ def build_net_http_response(webmock_response, request_uri, &block)
148
148
  response = Net::HTTPResponse.send(:response_class, webmock_response.status[0].to_s).new("1.0", webmock_response.status[0].to_s, webmock_response.status[1])
149
149
  body = webmock_response.body
150
150
  body = nil if webmock_response.status[0].to_s == '204'
@@ -159,6 +159,8 @@ module WebMock
159
159
 
160
160
  response.instance_variable_set(:@read, true)
161
161
 
162
+ response.uri = request_uri
163
+
162
164
  response.extend Net::WebMockHTTPResponse
163
165
 
164
166
  if webmock_response.should_timeout
@@ -117,11 +117,11 @@ module WebMock
117
117
  return if @body.nil?
118
118
  return if valid_types.any? { |c| @body.is_a?(c) }
119
119
 
120
- if @body.class.is_a?(Hash)
121
- raise InvalidBody, "must be one of: #{valid_types}, but you've used a #{@body.class}' instead." \
122
- "\n What shall we encode it to? try calling .to_json .to_xml instead on the hash instead, or otherwise convert it to a string."
120
+ if @body.is_a?(Hash)
121
+ raise InvalidBody, "must be one of: #{valid_types}, but you've used a #{@body.class}. " \
122
+ "Please convert it by calling .to_json .to_xml, or otherwise convert it to a string."
123
123
  else
124
- raise InvalidBody, "must be one of: #{valid_types}. '#{@body.class}' given"
124
+ raise InvalidBody, "must be one of: #{valid_types}. '#{@body.class}' given."
125
125
  end
126
126
  end
127
127
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WebMock
4
- VERSION = '3.21.0' unless defined?(::WebMock::VERSION)
4
+ VERSION = '3.21.2' unless defined?(::WebMock::VERSION)
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webmock
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.21.0
4
+ version: 3.21.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bartosz Blimke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-19 00:00:00.000000000 Z
11
+ date: 2024-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -371,9 +371,9 @@ licenses:
371
371
  - MIT
372
372
  metadata:
373
373
  bug_tracker_uri: https://github.com/bblimke/webmock/issues
374
- changelog_uri: https://github.com/bblimke/webmock/blob/v3.21.0/CHANGELOG.md
375
- documentation_uri: https://www.rubydoc.info/gems/webmock/3.21.0
376
- source_code_uri: https://github.com/bblimke/webmock/tree/v3.21.0
374
+ changelog_uri: https://github.com/bblimke/webmock/blob/v3.21.2/CHANGELOG.md
375
+ documentation_uri: https://www.rubydoc.info/gems/webmock/3.21.2
376
+ source_code_uri: https://github.com/bblimke/webmock/tree/v3.21.2
377
377
  wiki_uri: https://github.com/bblimke/webmock/wiki
378
378
  post_install_message:
379
379
  rdoc_options: []