webmock 2.0.3 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/Gemfile +2 -7
- data/README.md +54 -53
- data/Rakefile +1 -1
- data/lib/webmock/callback_registry.rb +1 -1
- data/lib/webmock/http_lib_adapters/curb_adapter.rb +68 -6
- data/lib/webmock/http_lib_adapters/em_http_request_adapter.rb +4 -4
- data/lib/webmock/http_lib_adapters/excon_adapter.rb +9 -9
- data/lib/webmock/http_lib_adapters/http_rb/request.rb +2 -2
- data/lib/webmock/http_lib_adapters/http_rb/response.rb +5 -5
- data/lib/webmock/http_lib_adapters/http_rb/webmock.rb +3 -3
- data/lib/webmock/http_lib_adapters/httpclient_adapter.rb +5 -5
- data/lib/webmock/http_lib_adapters/manticore_adapter.rb +7 -7
- data/lib/webmock/http_lib_adapters/net_http.rb +3 -3
- data/lib/webmock/http_lib_adapters/patron_adapter.rb +4 -4
- data/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb +14 -14
- data/lib/webmock/matchers/hash_including_matcher.rb +1 -1
- data/lib/webmock/rack_response.rb +3 -3
- data/lib/webmock/request_pattern.rb +8 -8
- data/lib/webmock/request_stub.rb +5 -5
- data/lib/webmock/util/uri.rb +2 -2
- data/lib/webmock/version.rb +1 -1
- data/minitest/webmock_spec.rb +3 -3
- data/spec/acceptance/curb/curb_spec.rb +64 -47
- data/spec/acceptance/curb/curb_spec_helper.rb +4 -4
- data/spec/acceptance/em_http_request/em_http_request_spec.rb +32 -32
- data/spec/acceptance/em_http_request/em_http_request_spec_helper.rb +9 -9
- data/spec/acceptance/excon/excon_spec.rb +14 -14
- data/spec/acceptance/excon/excon_spec_helper.rb +6 -6
- data/spec/acceptance/http_rb/http_rb_spec.rb +1 -1
- data/spec/acceptance/http_rb/http_rb_spec_helper.rb +7 -7
- data/spec/acceptance/httpclient/httpclient_spec.rb +20 -20
- data/spec/acceptance/httpclient/httpclient_spec_helper.rb +5 -5
- data/spec/acceptance/manticore/manticore_spec.rb +11 -11
- data/spec/acceptance/manticore/manticore_spec_helper.rb +3 -3
- data/spec/acceptance/net_http/net_http_shared.rb +4 -4
- data/spec/acceptance/net_http/net_http_spec.rb +25 -25
- data/spec/acceptance/net_http/net_http_spec_helper.rb +4 -4
- data/spec/acceptance/net_http/real_net_http_spec.rb +1 -1
- data/spec/acceptance/patron/patron_spec.rb +10 -10
- data/spec/acceptance/patron/patron_spec_helper.rb +5 -5
- data/spec/acceptance/shared/allowing_and_disabling_net_connect.rb +36 -36
- data/spec/acceptance/shared/callbacks.rb +11 -11
- data/spec/acceptance/shared/complex_cross_concern_behaviors.rb +5 -5
- data/spec/acceptance/shared/enabling_and_disabling_webmock.rb +4 -4
- data/spec/acceptance/shared/precedence_of_stubs.rb +4 -4
- data/spec/acceptance/shared/request_expectations.rb +90 -90
- data/spec/acceptance/shared/returning_declared_responses.rb +49 -49
- data/spec/acceptance/shared/stubbing_requests.rb +78 -78
- data/spec/acceptance/typhoeus/typhoeus_hydra_spec.rb +11 -11
- data/spec/acceptance/typhoeus/typhoeus_hydra_spec_helper.rb +8 -8
- data/spec/spec_helper.rb +6 -3
- data/spec/support/webmock_server.rb +1 -1
- data/spec/unit/api_spec.rb +2 -2
- data/spec/unit/errors_spec.rb +3 -3
- data/spec/unit/matchers/hash_including_matcher_spec.rb +16 -16
- data/spec/unit/rack_response_spec.rb +2 -2
- data/spec/unit/request_body_diff_spec.rb +1 -1
- data/spec/unit/request_execution_verifier_spec.rb +1 -1
- data/spec/unit/request_pattern_spec.rb +115 -115
- data/spec/unit/request_signature_snippet_spec.rb +2 -2
- data/spec/unit/request_signature_spec.rb +16 -16
- data/spec/unit/request_stub_spec.rb +20 -20
- data/spec/unit/response_spec.rb +28 -28
- data/spec/unit/stub_registry_spec.rb +10 -10
- data/spec/unit/stub_request_snippet_spec.rb +6 -6
- data/spec/unit/util/hash_keys_stringifier_spec.rb +4 -4
- data/spec/unit/util/query_mapper_spec.rb +2 -2
- data/spec/unit/util/uri_spec.rb +1 -1
- data/test/http_request.rb +3 -3
- data/test/shared_test.rb +6 -6
- data/webmock.gemspec +4 -2
- metadata +32 -4
@@ -13,7 +13,7 @@ RSpec.describe WebMock::RequestSignatureSnippet do
|
|
13
13
|
|
14
14
|
let(:request_pattern) {
|
15
15
|
WebMock::RequestPattern.new(
|
16
|
-
method, uri, {:
|
16
|
+
method, uri, {body: request_signature_body}
|
17
17
|
)
|
18
18
|
}
|
19
19
|
|
@@ -48,7 +48,7 @@ RSpec.describe WebMock::RequestSignatureSnippet do
|
|
48
48
|
|
49
49
|
describe "#request_stubs" do
|
50
50
|
before :each do
|
51
|
-
WebMock.stub_request(:get, "https://www.example.com").with(:
|
51
|
+
WebMock.stub_request(:get, "https://www.example.com").with(body: {"a" => "b"})
|
52
52
|
end
|
53
53
|
|
54
54
|
context "when showing the body diff is turned off" do
|
@@ -20,23 +20,23 @@ describe WebMock::RequestSignature do
|
|
20
20
|
it "assigns normalized headers" do
|
21
21
|
expect(WebMock::Util::Headers).to receive(:normalize_headers).with('A' => 'a').and_return('B' => 'b')
|
22
22
|
expect(
|
23
|
-
WebMock::RequestSignature.new(:get, "www.example.com", :
|
23
|
+
WebMock::RequestSignature.new(:get, "www.example.com", headers: {'A' => 'a'}).headers
|
24
24
|
).to eq({'B' => 'b'})
|
25
25
|
end
|
26
26
|
|
27
27
|
it "assign the body" do
|
28
|
-
expect(WebMock::RequestSignature.new(:get, "www.example.com", :
|
28
|
+
expect(WebMock::RequestSignature.new(:get, "www.example.com", body: "abc").body).to eq("abc")
|
29
29
|
end
|
30
30
|
|
31
31
|
it "symbolizes the method" do
|
32
|
-
expect(WebMock::RequestSignature.new('get', "www.example.com", :
|
32
|
+
expect(WebMock::RequestSignature.new('get', "www.example.com", body: "abc").method).to eq(:get)
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
36
|
describe "#to_s" do
|
37
37
|
it "describes itself" do
|
38
38
|
expect(WebMock::RequestSignature.new(:get, "www.example.com",
|
39
|
-
:
|
39
|
+
body: "abc", headers: {'A' => 'a', 'B' => 'b'}).to_s).to eq(
|
40
40
|
"GET http://www.example.com/ with body 'abc' with headers {'A'=>'a', 'B'=>'b'}"
|
41
41
|
)
|
42
42
|
end
|
@@ -45,9 +45,9 @@ describe WebMock::RequestSignature do
|
|
45
45
|
describe "#hash" do
|
46
46
|
it "reporst same hash for two signatures with the same values" do
|
47
47
|
signature1 = WebMock::RequestSignature.new(:get, "www.example.com",
|
48
|
-
:
|
48
|
+
body: "abc", headers: {'A' => 'a', 'B' => 'b'})
|
49
49
|
signature2 = WebMock::RequestSignature.new(:get, "www.example.com",
|
50
|
-
:
|
50
|
+
body: "abc", headers: {'A' => 'a', 'B' => 'b'})
|
51
51
|
expect(signature1.hash).to eq(signature2.hash)
|
52
52
|
end
|
53
53
|
|
@@ -64,16 +64,16 @@ describe WebMock::RequestSignature do
|
|
64
64
|
end
|
65
65
|
|
66
66
|
it "reports different hash for two signatures with different body" do
|
67
|
-
signature1 = WebMock::RequestSignature.new(:get, "www.example.com", :
|
68
|
-
signature2 = WebMock::RequestSignature.new(:get, "www.example.com", :
|
67
|
+
signature1 = WebMock::RequestSignature.new(:get, "www.example.com", body: "abc")
|
68
|
+
signature2 = WebMock::RequestSignature.new(:get, "www.example.com", body: "def")
|
69
69
|
expect(signature1.hash).not_to eq(signature2.hash)
|
70
70
|
end
|
71
71
|
|
72
72
|
it "reports different hash for two signatures with different headers" do
|
73
73
|
signature1 = WebMock::RequestSignature.new(:get, "www.example.com",
|
74
|
-
:
|
74
|
+
headers: {'A' => 'a'})
|
75
75
|
signature2 = WebMock::RequestSignature.new(:get, "www.example.com",
|
76
|
-
:
|
76
|
+
headers: {'A' => 'A'})
|
77
77
|
expect(signature1.hash).not_to eq(signature2.hash)
|
78
78
|
end
|
79
79
|
end
|
@@ -82,9 +82,9 @@ describe WebMock::RequestSignature do
|
|
82
82
|
describe method do
|
83
83
|
it "is true for two signatures with the same values" do
|
84
84
|
signature1 = WebMock::RequestSignature.new(:get, "www.example.com",
|
85
|
-
:
|
85
|
+
body: "abc", headers: {'A' => 'a', 'B' => 'b'})
|
86
86
|
signature2 = WebMock::RequestSignature.new(:get, "www.example.com",
|
87
|
-
:
|
87
|
+
body: "abc", headers: {'A' => 'a', 'B' => 'b'})
|
88
88
|
|
89
89
|
expect(signature1.send(method, signature2)).to be_truthy
|
90
90
|
end
|
@@ -102,16 +102,16 @@ describe WebMock::RequestSignature do
|
|
102
102
|
end
|
103
103
|
|
104
104
|
it "is false for two signatures with different body" do
|
105
|
-
signature1 = WebMock::RequestSignature.new(:get, "www.example.com", :
|
106
|
-
signature2 = WebMock::RequestSignature.new(:get, "www.example.com", :
|
105
|
+
signature1 = WebMock::RequestSignature.new(:get, "www.example.com", body: "abc")
|
106
|
+
signature2 = WebMock::RequestSignature.new(:get, "www.example.com", body: "def")
|
107
107
|
expect(signature1.send(method, signature2)).to be_falsey
|
108
108
|
end
|
109
109
|
|
110
110
|
it "is false for two signatures with different headers" do
|
111
111
|
signature1 = WebMock::RequestSignature.new(:get, "www.example.com",
|
112
|
-
:
|
112
|
+
headers: {'A' => 'a'})
|
113
113
|
signature2 = WebMock::RequestSignature.new(:get, "www.example.com",
|
114
|
-
:
|
114
|
+
headers: {'A' => 'A'})
|
115
115
|
expect(signature1.send(method, signature2)).to be_falsey
|
116
116
|
end
|
117
117
|
end
|
@@ -17,20 +17,20 @@ describe WebMock::RequestStub do
|
|
17
17
|
describe "with" do
|
18
18
|
|
19
19
|
it "should assign body to request pattern" do
|
20
|
-
@request_stub.with(:
|
21
|
-
expect(@request_stub.request_pattern.to_s).to eq(WebMock::RequestPattern.new(:get, "www.example.com", :
|
20
|
+
@request_stub.with(body: "abc")
|
21
|
+
expect(@request_stub.request_pattern.to_s).to eq(WebMock::RequestPattern.new(:get, "www.example.com", body: "abc").to_s)
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should assign normalized headers to request pattern" do
|
25
|
-
@request_stub.with(:
|
25
|
+
@request_stub.with(headers: {'A' => 'a'})
|
26
26
|
expect(@request_stub.request_pattern.to_s).to eq(
|
27
|
-
WebMock::RequestPattern.new(:get, "www.example.com", :
|
27
|
+
WebMock::RequestPattern.new(:get, "www.example.com", headers: {'A' => 'a'}).to_s
|
28
28
|
)
|
29
29
|
end
|
30
30
|
|
31
31
|
it "should assign given block to request profile" do
|
32
32
|
@request_stub.with { |req| req.body == "abc" }
|
33
|
-
expect(@request_stub.request_pattern.matches?(WebMock::RequestSignature.new(:get, "www.example.com", :
|
33
|
+
expect(@request_stub.request_pattern.matches?(WebMock::RequestSignature.new(:get, "www.example.com", body: "abc"))).to be_truthy
|
34
34
|
end
|
35
35
|
|
36
36
|
end
|
@@ -38,13 +38,13 @@ describe WebMock::RequestStub do
|
|
38
38
|
describe "to_return" do
|
39
39
|
|
40
40
|
it "should assign response with provided options" do
|
41
|
-
@request_stub.to_return(:
|
41
|
+
@request_stub.to_return(body: "abc", status: 500)
|
42
42
|
expect(@request_stub.response.body).to eq("abc")
|
43
43
|
expect(@request_stub.response.status).to eq([500, ""])
|
44
44
|
end
|
45
45
|
|
46
46
|
it "should assign responses with provided options" do
|
47
|
-
@request_stub.to_return([{:
|
47
|
+
@request_stub.to_return([{body: "abc"}, {body: "def"}])
|
48
48
|
expect([@request_stub.response.body, @request_stub.response.body]).to eq(["abc", "def"])
|
49
49
|
end
|
50
50
|
|
@@ -59,26 +59,26 @@ describe WebMock::RequestStub do
|
|
59
59
|
describe "response" do
|
60
60
|
|
61
61
|
it "should return responses in a sequence passed as array" do
|
62
|
-
@request_stub.to_return([{:
|
62
|
+
@request_stub.to_return([{body: "abc"}, {body: "def"}])
|
63
63
|
expect(@request_stub.response.body).to eq("abc")
|
64
64
|
expect(@request_stub.response.body).to eq("def")
|
65
65
|
end
|
66
66
|
|
67
67
|
it "should repeat returning last response" do
|
68
|
-
@request_stub.to_return([{:
|
68
|
+
@request_stub.to_return([{body: "abc"}, {body: "def"}])
|
69
69
|
@request_stub.response
|
70
70
|
@request_stub.response
|
71
71
|
expect(@request_stub.response.body).to eq("def")
|
72
72
|
end
|
73
73
|
|
74
74
|
it "should return responses in a sequence passed as comma separated params" do
|
75
|
-
@request_stub.to_return({:
|
75
|
+
@request_stub.to_return({body: "abc"}, {body: "def"})
|
76
76
|
expect(@request_stub.response.body).to eq("abc")
|
77
77
|
expect(@request_stub.response.body).to eq("def")
|
78
78
|
end
|
79
79
|
|
80
80
|
it "should return responses declared in multiple to_return declarations" do
|
81
|
-
@request_stub.to_return({:
|
81
|
+
@request_stub.to_return({body: "abc"}).to_return({body: "def"})
|
82
82
|
expect(@request_stub.response.body).to eq("abc")
|
83
83
|
expect(@request_stub.response.body).to eq("def")
|
84
84
|
end
|
@@ -95,7 +95,7 @@ describe WebMock::RequestStub do
|
|
95
95
|
end
|
96
96
|
|
97
97
|
it "should assign sequence of responses with response with exception to be thrown" do
|
98
|
-
@request_stub.to_return(:
|
98
|
+
@request_stub.to_return(body: "abc").then.to_raise(ArgumentError)
|
99
99
|
expect(@request_stub.response.body).to eq("abc")
|
100
100
|
expect {
|
101
101
|
@request_stub.response.raise_error_if_any
|
@@ -132,13 +132,13 @@ describe WebMock::RequestStub do
|
|
132
132
|
end
|
133
133
|
|
134
134
|
it "should assign sequence of responses with response with timeout" do
|
135
|
-
@request_stub.to_return(:
|
135
|
+
@request_stub.to_return(body: "abc").then.to_timeout
|
136
136
|
expect(@request_stub.response.body).to eq("abc")
|
137
137
|
expect(@request_stub.response.should_timeout).to be_truthy
|
138
138
|
end
|
139
139
|
|
140
140
|
it "should allow multiple timeouts to be declared" do
|
141
|
-
@request_stub.to_timeout.then.to_timeout.then.to_return(:
|
141
|
+
@request_stub.to_timeout.then.to_timeout.then.to_return(body: "abc")
|
142
142
|
expect(@request_stub.response.should_timeout).to be_truthy
|
143
143
|
expect(@request_stub.response.should_timeout).to be_truthy
|
144
144
|
expect(@request_stub.response.body).to eq("abc")
|
@@ -156,21 +156,21 @@ describe WebMock::RequestStub do
|
|
156
156
|
end
|
157
157
|
|
158
158
|
it "should repeat returning last declared response declared number of times" do
|
159
|
-
@request_stub.to_return({:
|
159
|
+
@request_stub.to_return({body: "abc"}).times(2).then.to_return({body: "def"})
|
160
160
|
expect(@request_stub.response.body).to eq("abc")
|
161
161
|
expect(@request_stub.response.body).to eq("abc")
|
162
162
|
expect(@request_stub.response.body).to eq("def")
|
163
163
|
end
|
164
164
|
|
165
165
|
it "should repeat raising last declared exception declared number of times" do
|
166
|
-
@request_stub.to_return({:
|
166
|
+
@request_stub.to_return({body: "abc"}).times(2).then.to_return({body: "def"})
|
167
167
|
expect(@request_stub.response.body).to eq("abc")
|
168
168
|
expect(@request_stub.response.body).to eq("abc")
|
169
169
|
expect(@request_stub.response.body).to eq("def")
|
170
170
|
end
|
171
171
|
|
172
172
|
it "should repeat returning last declared sequence of responses declared number of times" do
|
173
|
-
@request_stub.to_return({:
|
173
|
+
@request_stub.to_return({body: "abc"}, {body: "def"}).times(2).then.to_return({body: "ghj"})
|
174
174
|
expect(@request_stub.response.body).to eq("abc")
|
175
175
|
expect(@request_stub.response.body).to eq("def")
|
176
176
|
expect(@request_stub.response.body).to eq("abc")
|
@@ -179,18 +179,18 @@ describe WebMock::RequestStub do
|
|
179
179
|
end
|
180
180
|
|
181
181
|
it "should return self" do
|
182
|
-
expect(@request_stub.to_return({:
|
182
|
+
expect(@request_stub.to_return({body: "abc"}).times(1)).to eq(@request_stub)
|
183
183
|
end
|
184
184
|
|
185
185
|
it "should raise error if argument is not integer" do
|
186
186
|
expect {
|
187
|
-
@request_stub.to_return({:
|
187
|
+
@request_stub.to_return({body: "abc"}).times("not number")
|
188
188
|
}.to raise_error("times(N) accepts integers >= 1 only")
|
189
189
|
end
|
190
190
|
|
191
191
|
it "should raise error if argument is < 1" do
|
192
192
|
expect {
|
193
|
-
@request_stub.to_return({:
|
193
|
+
@request_stub.to_return({body: "abc"}).times(0)
|
194
194
|
}.to raise_error("times(N) accepts integers >= 1 only")
|
195
195
|
end
|
196
196
|
|
data/spec/unit/response_spec.rb
CHANGED
@@ -5,14 +5,14 @@ describe WebMock::ResponseFactory do
|
|
5
5
|
describe "response_for" do
|
6
6
|
|
7
7
|
it "should create response with options passed as arguments" do
|
8
|
-
options = {:
|
8
|
+
options = {body: "abc", headers: {a: :b}}
|
9
9
|
expect(WebMock::Response).to receive(:new).with(options).and_return(@response = double(WebMock::Response))
|
10
10
|
expect(WebMock::ResponseFactory.response_for(options)).to eq(@response)
|
11
11
|
end
|
12
12
|
|
13
13
|
|
14
14
|
it "should create dynamic response for argument responding to call" do
|
15
|
-
callable = double(:
|
15
|
+
callable = double(call: {body: "abc"})
|
16
16
|
expect(WebMock::DynamicResponse).to receive(:new).with(callable).and_return(@response = double(WebMock::Response))
|
17
17
|
expect(WebMock::ResponseFactory.response_for(callable)).to eq(@response)
|
18
18
|
end
|
@@ -23,16 +23,16 @@ end
|
|
23
23
|
|
24
24
|
describe WebMock::Response do
|
25
25
|
before(:each) do
|
26
|
-
@response = WebMock::Response.new(:
|
26
|
+
@response = WebMock::Response.new(headers: {'A' => 'a'})
|
27
27
|
end
|
28
28
|
|
29
29
|
it "should raise an error when initialized with unknown option" do
|
30
|
-
expect { WebMock::Response.new(:
|
30
|
+
expect { WebMock::Response.new(foo: "bar") }.to raise_error('Unknown key: "foo". Valid keys are: "headers", "status", "body", "exception", "should_timeout"')
|
31
31
|
end
|
32
32
|
|
33
33
|
it "should report normalized headers" do
|
34
34
|
expect(WebMock::Util::Headers).to receive(:normalize_headers).with('A' => 'a').and_return('B' => 'b')
|
35
|
-
@response = WebMock::Response.new(:
|
35
|
+
@response = WebMock::Response.new(headers: {'A' => 'a'})
|
36
36
|
expect(@response.headers).to eq({'B' => 'b'})
|
37
37
|
end
|
38
38
|
|
@@ -42,12 +42,12 @@ describe WebMock::Response do
|
|
42
42
|
end
|
43
43
|
|
44
44
|
it "should return assigned status" do
|
45
|
-
@response = WebMock::Response.new(:
|
45
|
+
@response = WebMock::Response.new(status: 500)
|
46
46
|
expect(@response.status).to eq([500, ""])
|
47
47
|
end
|
48
48
|
|
49
49
|
it "should return assigned message" do
|
50
|
-
@response = WebMock::Response.new(:
|
50
|
+
@response = WebMock::Response.new(status: [500, "Internal Server Error"])
|
51
51
|
expect(@response.status).to eq([500, "Internal Server Error"])
|
52
52
|
end
|
53
53
|
end
|
@@ -55,21 +55,21 @@ describe WebMock::Response do
|
|
55
55
|
describe "raising error" do
|
56
56
|
|
57
57
|
it "should raise error if any assigned" do
|
58
|
-
@response = WebMock::Response.new(:
|
58
|
+
@response = WebMock::Response.new(exception: ArgumentError)
|
59
59
|
expect {
|
60
60
|
@response.raise_error_if_any
|
61
61
|
}.to raise_error(ArgumentError, "Exception from WebMock")
|
62
62
|
end
|
63
63
|
|
64
64
|
it "should raise error if any assigned as instance" do
|
65
|
-
@response = WebMock::Response.new(:
|
65
|
+
@response = WebMock::Response.new(exception: ArgumentError.new("hello world"))
|
66
66
|
expect {
|
67
67
|
@response.raise_error_if_any
|
68
68
|
}.to raise_error(ArgumentError, "hello world")
|
69
69
|
end
|
70
70
|
|
71
71
|
it "should raise error if any assigned as string" do
|
72
|
-
@response = WebMock::Response.new(:
|
72
|
+
@response = WebMock::Response.new(exception: "hello world")
|
73
73
|
expect {
|
74
74
|
@response.raise_error_if_any
|
75
75
|
}.to raise_error("hello world")
|
@@ -84,7 +84,7 @@ describe WebMock::Response do
|
|
84
84
|
describe "timeout" do
|
85
85
|
|
86
86
|
it "should know if it should timeout" do
|
87
|
-
@response = WebMock::Response.new(:
|
87
|
+
@response = WebMock::Response.new(should_timeout: true)
|
88
88
|
expect(@response.should_timeout).to be_truthy
|
89
89
|
end
|
90
90
|
|
@@ -102,28 +102,28 @@ describe WebMock::Response do
|
|
102
102
|
end
|
103
103
|
|
104
104
|
it "should report body if assigned" do
|
105
|
-
@response = WebMock::Response.new(:
|
105
|
+
@response = WebMock::Response.new(body: "abc")
|
106
106
|
expect(@response.body).to eq("abc")
|
107
107
|
end
|
108
108
|
|
109
109
|
it "should report string even if existing file path was provided" do
|
110
|
-
@response = WebMock::Response.new(:
|
110
|
+
@response = WebMock::Response.new(body: __FILE__)
|
111
111
|
expect(@response.body).to eq(__FILE__)
|
112
112
|
end
|
113
113
|
|
114
114
|
it "should report content of a IO object if provided" do
|
115
|
-
@response = WebMock::Response.new(:
|
115
|
+
@response = WebMock::Response.new(body: File.new(__FILE__))
|
116
116
|
expect(@response.body).to eq(File.read(__FILE__))
|
117
117
|
end
|
118
118
|
|
119
119
|
it "should report many times content of a IO object if provided" do
|
120
|
-
@response = WebMock::Response.new(:
|
120
|
+
@response = WebMock::Response.new(body: File.new(__FILE__))
|
121
121
|
expect(@response.body).to eq(File.read(__FILE__))
|
122
122
|
expect(@response.body).to eq(File.read(__FILE__))
|
123
123
|
end
|
124
124
|
|
125
125
|
it "should work with Pathnames" do
|
126
|
-
@response = WebMock::Response.new(:
|
126
|
+
@response = WebMock::Response.new(body: Pathname.new(__FILE__))
|
127
127
|
expect(@response.body).to eq(File.read(__FILE__))
|
128
128
|
end
|
129
129
|
|
@@ -131,7 +131,7 @@ describe WebMock::Response do
|
|
131
131
|
# body to return a hash, to prevent this:
|
132
132
|
#
|
133
133
|
it "should error if not given one of the allowed types" do
|
134
|
-
expect { WebMock::Response.new(:
|
134
|
+
expect { WebMock::Response.new(body: Hash.new) }.to \
|
135
135
|
raise_error(WebMock::Response::InvalidBody)
|
136
136
|
end
|
137
137
|
|
@@ -205,21 +205,21 @@ describe WebMock::Response do
|
|
205
205
|
describe "with dynamically evaluated options" do
|
206
206
|
|
207
207
|
before(:each) do
|
208
|
-
@request_signature = WebMock::RequestSignature.new(:post, "www.example.com", :
|
208
|
+
@request_signature = WebMock::RequestSignature.new(:post, "www.example.com", body: "abc", headers: {'A' => 'a'})
|
209
209
|
end
|
210
210
|
|
211
211
|
it "should have evaluated body" do
|
212
|
-
@response = WebMock::Response.new(:
|
212
|
+
@response = WebMock::Response.new(body: lambda {|request| request.body})
|
213
213
|
expect(@response.evaluate(@request_signature).body).to eq("abc")
|
214
214
|
end
|
215
215
|
|
216
216
|
it "should have evaluated headers" do
|
217
|
-
@response = WebMock::Response.new(:
|
217
|
+
@response = WebMock::Response.new(headers: lambda {|request| request.headers})
|
218
218
|
expect(@response.evaluate(@request_signature).headers).to eq({'A' => 'a'})
|
219
219
|
end
|
220
220
|
|
221
221
|
it "should have evaluated status" do
|
222
|
-
@response = WebMock::Response.new(:
|
222
|
+
@response = WebMock::Response.new(status: lambda {|request| 302})
|
223
223
|
expect(@response.evaluate(@request_signature).status).to eq([302, ""])
|
224
224
|
end
|
225
225
|
|
@@ -232,12 +232,12 @@ describe WebMock::Response do
|
|
232
232
|
describe "evaluating response options" do
|
233
233
|
|
234
234
|
it "should evaluate new response with evaluated options" do
|
235
|
-
request_signature = WebMock::RequestSignature.new(:post, "www.example.com", :
|
235
|
+
request_signature = WebMock::RequestSignature.new(:post, "www.example.com", body: "abc", headers: {'A' => 'a'})
|
236
236
|
response = WebMock::DynamicResponse.new(lambda {|request|
|
237
237
|
{
|
238
|
-
:
|
239
|
-
:
|
240
|
-
:
|
238
|
+
body: request.body,
|
239
|
+
headers: request.headers,
|
240
|
+
status: 302
|
241
241
|
}
|
242
242
|
})
|
243
243
|
evaluated_response = response.evaluate(request_signature)
|
@@ -247,10 +247,10 @@ describe WebMock::Response do
|
|
247
247
|
end
|
248
248
|
|
249
249
|
it "should be equal to static response after evaluation" do
|
250
|
-
request_signature = WebMock::RequestSignature.new(:post, "www.example.com", :
|
251
|
-
response = WebMock::DynamicResponse.new(lambda {|request| {:
|
250
|
+
request_signature = WebMock::RequestSignature.new(:post, "www.example.com", body: "abc")
|
251
|
+
response = WebMock::DynamicResponse.new(lambda {|request| {body: request.body}})
|
252
252
|
evaluated_response = response.evaluate(request_signature)
|
253
|
-
expect(evaluated_response).to eq(WebMock::Response.new(:
|
253
|
+
expect(evaluated_response).to eq(WebMock::Response.new(body: "abc"))
|
254
254
|
end
|
255
255
|
|
256
256
|
describe "when raw response is evaluated" do
|
@@ -51,21 +51,21 @@ describe WebMock::StubRegistry do
|
|
51
51
|
describe "response for request" do
|
52
52
|
|
53
53
|
it "should report registered evaluated response for request pattern" do
|
54
|
-
@request_stub.to_return(:
|
54
|
+
@request_stub.to_return(body: "abc")
|
55
55
|
WebMock::StubRegistry.instance.register_request_stub(@request_stub)
|
56
56
|
expect(WebMock::StubRegistry.instance.response_for_request(@request_signature)).
|
57
|
-
to eq(WebMock::Response.new(:
|
57
|
+
to eq(WebMock::Response.new(body: "abc"))
|
58
58
|
end
|
59
59
|
|
60
60
|
it "should report evaluated response" do
|
61
|
-
@request_stub.to_return {|request| {:
|
61
|
+
@request_stub.to_return {|request| {body: request.method.to_s} }
|
62
62
|
WebMock::StubRegistry.instance.register_request_stub(@request_stub)
|
63
63
|
response1 = WebMock::StubRegistry.instance.response_for_request(@request_signature)
|
64
|
-
expect(response1).to eq(WebMock::Response.new(:
|
64
|
+
expect(response1).to eq(WebMock::Response.new(body: "get"))
|
65
65
|
end
|
66
66
|
|
67
67
|
it "should report clone of the response" do
|
68
|
-
@request_stub.to_return(:
|
68
|
+
@request_stub.to_return(body: lambda{|r| r.method.to_s})
|
69
69
|
WebMock::StubRegistry.instance.register_request_stub(@request_stub)
|
70
70
|
response1 = WebMock::StubRegistry.instance.response_for_request(@request_signature)
|
71
71
|
response2 = WebMock::StubRegistry.instance.response_for_request(@request_signature)
|
@@ -73,7 +73,7 @@ describe WebMock::StubRegistry do
|
|
73
73
|
end
|
74
74
|
|
75
75
|
it "should report clone of the dynamic response" do
|
76
|
-
@request_stub.to_return {|request| {:
|
76
|
+
@request_stub.to_return {|request| {body: request.method.to_s} }
|
77
77
|
WebMock::StubRegistry.instance.register_request_stub(@request_stub)
|
78
78
|
response1 = WebMock::StubRegistry.instance.response_for_request(@request_signature)
|
79
79
|
response2 = WebMock::StubRegistry.instance.response_for_request(@request_signature)
|
@@ -86,16 +86,16 @@ describe WebMock::StubRegistry do
|
|
86
86
|
|
87
87
|
it "should always return last registered matching response" do
|
88
88
|
@request_stub1 = WebMock::RequestStub.new(:get, "www.example.com")
|
89
|
-
@request_stub1.to_return(:
|
89
|
+
@request_stub1.to_return(body: "abc")
|
90
90
|
@request_stub2 = WebMock::RequestStub.new(:get, "www.example.com")
|
91
|
-
@request_stub2.to_return(:
|
91
|
+
@request_stub2.to_return(body: "def")
|
92
92
|
@request_stub3 = WebMock::RequestStub.new(:get, "www.example.org")
|
93
|
-
@request_stub3.to_return(:
|
93
|
+
@request_stub3.to_return(body: "ghj")
|
94
94
|
WebMock::StubRegistry.instance.register_request_stub(@request_stub1)
|
95
95
|
WebMock::StubRegistry.instance.register_request_stub(@request_stub2)
|
96
96
|
WebMock::StubRegistry.instance.register_request_stub(@request_stub3)
|
97
97
|
expect(WebMock::StubRegistry.instance.response_for_request(@request_signature)).
|
98
|
-
to eq(WebMock::Response.new(:
|
98
|
+
to eq(WebMock::Response.new(body: "def"))
|
99
99
|
end
|
100
100
|
|
101
101
|
end
|