webmock 3.14.0 → 3.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +213 -3
- data/README.md +66 -20
- data/lib/webmock/api.rb +2 -0
- data/lib/webmock/assertion_failure.rb +2 -0
- data/lib/webmock/callback_registry.rb +2 -0
- data/lib/webmock/config.rb +2 -0
- data/lib/webmock/cucumber.rb +2 -0
- data/lib/webmock/deprecation.rb +2 -0
- data/lib/webmock/errors.rb +2 -0
- data/lib/webmock/http_lib_adapters/async_http_client_adapter.rb +16 -4
- data/lib/webmock/http_lib_adapters/curb_adapter.rb +4 -2
- data/lib/webmock/http_lib_adapters/em_http_request_adapter.rb +17 -7
- data/lib/webmock/http_lib_adapters/excon_adapter.rb +2 -0
- data/lib/webmock/http_lib_adapters/http_lib_adapter.rb +2 -0
- data/lib/webmock/http_lib_adapters/http_lib_adapter_registry.rb +2 -0
- data/lib/webmock/http_lib_adapters/http_rb/client.rb +3 -3
- data/lib/webmock/http_lib_adapters/http_rb/request.rb +17 -5
- data/lib/webmock/http_lib_adapters/http_rb/response.rb +32 -9
- data/lib/webmock/http_lib_adapters/http_rb/streamer.rb +10 -2
- data/lib/webmock/http_lib_adapters/http_rb/webmock.rb +8 -2
- data/lib/webmock/http_lib_adapters/http_rb_adapter.rb +7 -5
- data/lib/webmock/http_lib_adapters/httpclient_adapter.rb +26 -25
- data/lib/webmock/http_lib_adapters/manticore_adapter.rb +2 -0
- data/lib/webmock/http_lib_adapters/net_http.rb +46 -121
- data/lib/webmock/http_lib_adapters/net_http_response.rb +2 -0
- data/lib/webmock/http_lib_adapters/patron_adapter.rb +3 -1
- data/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb +18 -2
- data/lib/webmock/matchers/any_arg_matcher.rb +2 -0
- data/lib/webmock/matchers/hash_argument_matcher.rb +2 -0
- data/lib/webmock/matchers/hash_excluding_matcher.rb +2 -0
- data/lib/webmock/matchers/hash_including_matcher.rb +2 -0
- data/lib/webmock/minitest.rb +2 -0
- data/lib/webmock/rack_response.rb +5 -1
- data/lib/webmock/request_body_diff.rb +2 -0
- data/lib/webmock/request_execution_verifier.rb +2 -0
- data/lib/webmock/request_pattern.rb +35 -12
- data/lib/webmock/request_registry.rb +2 -0
- data/lib/webmock/request_signature.rb +4 -2
- data/lib/webmock/request_signature_snippet.rb +2 -0
- data/lib/webmock/request_stub.rb +34 -0
- data/lib/webmock/response.rb +15 -13
- data/lib/webmock/responses_sequence.rb +2 -0
- data/lib/webmock/rspec/matchers/request_pattern_matcher.rb +2 -0
- data/lib/webmock/rspec/matchers/webmock_matcher.rb +2 -0
- data/lib/webmock/rspec/matchers.rb +2 -0
- data/lib/webmock/rspec.rb +2 -0
- data/lib/webmock/stub_registry.rb +2 -0
- data/lib/webmock/stub_request_snippet.rb +2 -0
- data/lib/webmock/test_unit.rb +2 -0
- data/lib/webmock/util/hash_counter.rb +12 -6
- data/lib/webmock/util/hash_keys_stringifier.rb +2 -0
- data/lib/webmock/util/hash_validator.rb +2 -0
- data/lib/webmock/util/headers.rb +23 -10
- data/lib/webmock/util/parsers/json.rb +72 -0
- data/lib/webmock/util/parsers/parse_error.rb +7 -0
- data/lib/webmock/util/parsers/xml.rb +16 -0
- data/lib/webmock/util/query_mapper.rb +2 -0
- data/lib/webmock/util/uri.rb +3 -1
- data/lib/webmock/util/values_stringifier.rb +2 -0
- data/lib/webmock/util/version_checker.rb +7 -5
- data/lib/webmock/version.rb +3 -1
- data/lib/webmock/webmock.rb +12 -0
- data/lib/webmock.rb +4 -2
- metadata +66 -185
- data/.gemtest +0 -0
- data/.github/workflows/CI.yml +0 -37
- data/.gitignore +0 -34
- data/.rspec-tm +0 -2
- data/Gemfile +0 -9
- data/Rakefile +0 -38
- data/lib/webmock/util/json.rb +0 -67
- data/minitest/test_helper.rb +0 -34
- data/minitest/test_webmock.rb +0 -9
- data/minitest/webmock_spec.rb +0 -60
- data/spec/acceptance/async_http_client/async_http_client_spec.rb +0 -375
- data/spec/acceptance/async_http_client/async_http_client_spec_helper.rb +0 -73
- data/spec/acceptance/curb/curb_spec.rb +0 -499
- data/spec/acceptance/curb/curb_spec_helper.rb +0 -147
- data/spec/acceptance/em_http_request/em_http_request_spec.rb +0 -462
- data/spec/acceptance/em_http_request/em_http_request_spec_helper.rb +0 -77
- data/spec/acceptance/excon/excon_spec.rb +0 -77
- data/spec/acceptance/excon/excon_spec_helper.rb +0 -52
- data/spec/acceptance/http_rb/http_rb_spec.rb +0 -93
- data/spec/acceptance/http_rb/http_rb_spec_helper.rb +0 -54
- data/spec/acceptance/httpclient/httpclient_spec.rb +0 -217
- data/spec/acceptance/httpclient/httpclient_spec_helper.rb +0 -57
- data/spec/acceptance/manticore/manticore_spec.rb +0 -107
- data/spec/acceptance/manticore/manticore_spec_helper.rb +0 -35
- data/spec/acceptance/net_http/net_http_shared.rb +0 -153
- data/spec/acceptance/net_http/net_http_spec.rb +0 -369
- data/spec/acceptance/net_http/net_http_spec_helper.rb +0 -64
- data/spec/acceptance/net_http/real_net_http_spec.rb +0 -20
- data/spec/acceptance/patron/patron_spec.rb +0 -125
- data/spec/acceptance/patron/patron_spec_helper.rb +0 -54
- data/spec/acceptance/shared/allowing_and_disabling_net_connect.rb +0 -313
- data/spec/acceptance/shared/callbacks.rb +0 -148
- data/spec/acceptance/shared/complex_cross_concern_behaviors.rb +0 -36
- data/spec/acceptance/shared/enabling_and_disabling_webmock.rb +0 -95
- data/spec/acceptance/shared/precedence_of_stubs.rb +0 -15
- data/spec/acceptance/shared/request_expectations.rb +0 -930
- data/spec/acceptance/shared/returning_declared_responses.rb +0 -409
- data/spec/acceptance/shared/stubbing_requests.rb +0 -678
- data/spec/acceptance/typhoeus/typhoeus_hydra_spec.rb +0 -135
- data/spec/acceptance/typhoeus/typhoeus_hydra_spec_helper.rb +0 -60
- data/spec/acceptance/webmock_shared.rb +0 -41
- data/spec/fixtures/test.txt +0 -1
- data/spec/quality_spec.rb +0 -84
- data/spec/spec_helper.rb +0 -48
- data/spec/support/example_curl_output.txt +0 -22
- data/spec/support/failures.rb +0 -9
- data/spec/support/my_rack_app.rb +0 -53
- data/spec/support/network_connection.rb +0 -19
- data/spec/support/webmock_server.rb +0 -70
- data/spec/unit/api_spec.rb +0 -175
- data/spec/unit/errors_spec.rb +0 -129
- data/spec/unit/http_lib_adapters/http_lib_adapter_registry_spec.rb +0 -17
- data/spec/unit/http_lib_adapters/http_lib_adapter_spec.rb +0 -12
- data/spec/unit/matchers/hash_excluding_matcher_spec.rb +0 -61
- data/spec/unit/matchers/hash_including_matcher_spec.rb +0 -87
- data/spec/unit/rack_response_spec.rb +0 -112
- data/spec/unit/request_body_diff_spec.rb +0 -90
- data/spec/unit/request_execution_verifier_spec.rb +0 -208
- data/spec/unit/request_pattern_spec.rb +0 -736
- data/spec/unit/request_registry_spec.rb +0 -95
- data/spec/unit/request_signature_snippet_spec.rb +0 -89
- data/spec/unit/request_signature_spec.rb +0 -155
- data/spec/unit/request_stub_spec.rb +0 -199
- data/spec/unit/response_spec.rb +0 -286
- data/spec/unit/stub_registry_spec.rb +0 -103
- data/spec/unit/stub_request_snippet_spec.rb +0 -115
- data/spec/unit/util/hash_counter_spec.rb +0 -39
- data/spec/unit/util/hash_keys_stringifier_spec.rb +0 -27
- data/spec/unit/util/headers_spec.rb +0 -28
- data/spec/unit/util/json_spec.rb +0 -33
- data/spec/unit/util/query_mapper_spec.rb +0 -157
- data/spec/unit/util/uri_spec.rb +0 -371
- data/spec/unit/util/version_checker_spec.rb +0 -65
- data/spec/unit/webmock_spec.rb +0 -60
- data/test/http_request.rb +0 -24
- data/test/shared_test.rb +0 -108
- data/test/test_helper.rb +0 -23
- data/test/test_webmock.rb +0 -12
- data/webmock.gemspec +0 -54
@@ -1,208 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe WebMock::RequestExecutionVerifier do
|
4
|
-
before(:each) do
|
5
|
-
@verifier = WebMock::RequestExecutionVerifier.new
|
6
|
-
@request_pattern = double(WebMock::RequestPattern, to_s: "www.example.com")
|
7
|
-
@verifier.request_pattern = @request_pattern
|
8
|
-
allow(WebMock::RequestRegistry.instance).to receive(:to_s).and_return("executed requests")
|
9
|
-
@executed_requests_info = "\n\nThe following requests were made:\n\nexecuted requests\n" + "="*60
|
10
|
-
end
|
11
|
-
|
12
|
-
describe "description" do
|
13
|
-
|
14
|
-
it "reports the description" do
|
15
|
-
@verifier.expected_times_executed = 2
|
16
|
-
expect(@verifier.description).to eq "request www.example.com 2 times"
|
17
|
-
end
|
18
|
-
|
19
|
-
it "reports description correctly when expectation is 1 time" do
|
20
|
-
@verifier.expected_times_executed = 1
|
21
|
-
expect(@verifier.description).to eq "request www.example.com 1 time"
|
22
|
-
end
|
23
|
-
|
24
|
-
context "at_least_times_executed is set" do
|
25
|
-
it "reports description correctly when expectation at least 2 times" do
|
26
|
-
@verifier.at_least_times_executed = 2
|
27
|
-
expect(@verifier.description).to eq "request www.example.com at least 2 times"
|
28
|
-
end
|
29
|
-
|
30
|
-
it "reports description correctly when expectation is at least 3 times" do
|
31
|
-
@verifier.at_least_times_executed = 3
|
32
|
-
expect(@verifier.description).to eq "request www.example.com at least 3 times"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
context "at_most_times_executed is set" do
|
37
|
-
it "reports description correctly when expectation is at most 2 times" do
|
38
|
-
@verifier.at_most_times_executed = 2
|
39
|
-
expect(@verifier.description).to eq "request www.example.com at most 2 times"
|
40
|
-
end
|
41
|
-
|
42
|
-
it "reports description correctly when expectation is at most 1 time" do
|
43
|
-
@verifier.at_most_times_executed = 1
|
44
|
-
expect(@verifier.description).to eq "request www.example.com at most 1 time"
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
|
-
|
50
|
-
describe "failure message" do
|
51
|
-
|
52
|
-
it "reports the failure message" do
|
53
|
-
@verifier.times_executed = 0
|
54
|
-
@verifier.expected_times_executed = 2
|
55
|
-
expected_text = "The request www.example.com was expected to execute 2 times but it executed 0 times"
|
56
|
-
expected_text += @executed_requests_info
|
57
|
-
expect(@verifier.failure_message).to eq(expected_text)
|
58
|
-
end
|
59
|
-
|
60
|
-
it "reports failure message correctly when executed times is one" do
|
61
|
-
@verifier.times_executed = 1
|
62
|
-
@verifier.expected_times_executed = 1
|
63
|
-
expected_text = "The request www.example.com was expected to execute 1 time but it executed 1 time"
|
64
|
-
expected_text += @executed_requests_info
|
65
|
-
expect(@verifier.failure_message).to eq(expected_text)
|
66
|
-
end
|
67
|
-
|
68
|
-
context "at_least_times_executed is set" do
|
69
|
-
it "reports failure message correctly when executed times is one" do
|
70
|
-
@verifier.times_executed = 1
|
71
|
-
@verifier.at_least_times_executed = 2
|
72
|
-
expected_text = "The request www.example.com was expected to execute at least 2 times but it executed 1 time"
|
73
|
-
expected_text += @executed_requests_info
|
74
|
-
expect(@verifier.failure_message).to eq(expected_text)
|
75
|
-
end
|
76
|
-
|
77
|
-
it "reports failure message correctly when executed times is two" do
|
78
|
-
@verifier.times_executed = 2
|
79
|
-
@verifier.at_least_times_executed = 3
|
80
|
-
expected_text = "The request www.example.com was expected to execute at least 3 times but it executed 2 times"
|
81
|
-
expected_text += @executed_requests_info
|
82
|
-
expect(@verifier.failure_message).to eq(expected_text)
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
context "at_most_times_executed is set" do
|
87
|
-
it "reports failure message correctly when executed times is three" do
|
88
|
-
@verifier.times_executed = 3
|
89
|
-
@verifier.at_most_times_executed = 2
|
90
|
-
expected_text = "The request www.example.com was expected to execute at most 2 times but it executed 3 times"
|
91
|
-
expected_text += @executed_requests_info
|
92
|
-
expect(@verifier.failure_message).to eq(expected_text)
|
93
|
-
end
|
94
|
-
|
95
|
-
it "reports failure message correctly when executed times is two" do
|
96
|
-
@verifier.times_executed = 2
|
97
|
-
@verifier.at_most_times_executed = 1
|
98
|
-
expected_text = "The request www.example.com was expected to execute at most 1 time but it executed 2 times"
|
99
|
-
expected_text += @executed_requests_info
|
100
|
-
expect(@verifier.failure_message).to eq(expected_text)
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
describe "negative failure message" do
|
106
|
-
|
107
|
-
it "reports failure message if it executed number of times specified" do
|
108
|
-
@verifier.times_executed = 2
|
109
|
-
@verifier.expected_times_executed = 2
|
110
|
-
expected_text = "The request www.example.com was not expected to execute 2 times but it executed 2 times"
|
111
|
-
expected_text += @executed_requests_info
|
112
|
-
expect(@verifier.failure_message_when_negated).to eq(expected_text)
|
113
|
-
end
|
114
|
-
|
115
|
-
it "reports failure message when not expected request but it executed" do
|
116
|
-
@verifier.times_executed = 1
|
117
|
-
expected_text = "The request www.example.com was not expected to execute but it executed 1 time"
|
118
|
-
expected_text += @executed_requests_info
|
119
|
-
expect(@verifier.failure_message_when_negated).to eq(expected_text)
|
120
|
-
end
|
121
|
-
|
122
|
-
context "at_least_times_executed is set" do
|
123
|
-
it "reports failure message correctly when executed times is one" do
|
124
|
-
@verifier.times_executed = 3
|
125
|
-
@verifier.at_least_times_executed = 2
|
126
|
-
expected_text = "The request www.example.com was not expected to execute at least 2 times but it executed 3 times"
|
127
|
-
expected_text += @executed_requests_info
|
128
|
-
expect(@verifier.failure_message_when_negated).to eq(expected_text)
|
129
|
-
end
|
130
|
-
|
131
|
-
it "reports failure message correctly when executed times is two" do
|
132
|
-
@verifier.times_executed = 2
|
133
|
-
@verifier.at_least_times_executed = 2
|
134
|
-
expected_text = "The request www.example.com was not expected to execute at least 2 times but it executed 2 times"
|
135
|
-
expected_text += @executed_requests_info
|
136
|
-
expect(@verifier.failure_message_when_negated).to eq(expected_text)
|
137
|
-
end
|
138
|
-
end
|
139
|
-
|
140
|
-
context "at_most_times_executed is set" do
|
141
|
-
it "reports failure message correctly when executed times is three" do
|
142
|
-
@verifier.times_executed = 2
|
143
|
-
@verifier.at_most_times_executed = 3
|
144
|
-
expected_text = "The request www.example.com was not expected to execute at most 3 times but it executed 2 times"
|
145
|
-
expected_text += @executed_requests_info
|
146
|
-
expect(@verifier.failure_message_when_negated).to eq(expected_text)
|
147
|
-
end
|
148
|
-
|
149
|
-
it "reports failure message correctly when executed times is one" do
|
150
|
-
@verifier.times_executed = 1
|
151
|
-
@verifier.at_most_times_executed = 2
|
152
|
-
expected_text = "The request www.example.com was not expected to execute at most 2 times but it executed 1 time"
|
153
|
-
expected_text += @executed_requests_info
|
154
|
-
expect(@verifier.failure_message_when_negated).to eq(expected_text)
|
155
|
-
end
|
156
|
-
end
|
157
|
-
|
158
|
-
end
|
159
|
-
|
160
|
-
describe "matches?" do
|
161
|
-
|
162
|
-
it "succeeds if request was executed expected number of times" do
|
163
|
-
expect(WebMock::RequestRegistry.instance).
|
164
|
-
to receive(:times_executed).with(@request_pattern).and_return(10)
|
165
|
-
@verifier.expected_times_executed = 10
|
166
|
-
expect(@verifier.matches?).to be_truthy
|
167
|
-
end
|
168
|
-
|
169
|
-
it "fails if request was not executed expected number of times" do
|
170
|
-
expect(WebMock::RequestRegistry.instance).
|
171
|
-
to receive(:times_executed).with(@request_pattern).and_return(10)
|
172
|
-
@verifier.expected_times_executed = 5
|
173
|
-
expect(@verifier.matches?).to be_falsey
|
174
|
-
end
|
175
|
-
|
176
|
-
end
|
177
|
-
|
178
|
-
describe "does_not_match?" do
|
179
|
-
|
180
|
-
it "fails if request executed expected number of times" do
|
181
|
-
expect(WebMock::RequestRegistry.instance).
|
182
|
-
to receive(:times_executed).with(@request_pattern).and_return(10)
|
183
|
-
@verifier.expected_times_executed = 10
|
184
|
-
expect(@verifier.does_not_match?).to be_falsey
|
185
|
-
end
|
186
|
-
|
187
|
-
it "succeeds if request was not executed at all and expected number of times was not set" do
|
188
|
-
expect(WebMock::RequestRegistry.instance).
|
189
|
-
to receive(:times_executed).with(@request_pattern).and_return(0)
|
190
|
-
expect(@verifier.does_not_match?).to be_truthy
|
191
|
-
end
|
192
|
-
|
193
|
-
it "fails if request was executed and expected number of times was not set" do
|
194
|
-
expect(WebMock::RequestRegistry.instance).
|
195
|
-
to receive(:times_executed).with(@request_pattern).and_return(1)
|
196
|
-
expect(@verifier.does_not_match?).to be_falsey
|
197
|
-
end
|
198
|
-
|
199
|
-
it "succeeds if request was not executed expected number of times" do
|
200
|
-
expect(WebMock::RequestRegistry.instance).
|
201
|
-
to receive(:times_executed).with(@request_pattern).and_return(10)
|
202
|
-
@verifier.expected_times_executed = 5
|
203
|
-
expect(@verifier.does_not_match?).to be_truthy
|
204
|
-
end
|
205
|
-
|
206
|
-
end
|
207
|
-
|
208
|
-
end
|