webmock-rspec-helper 0.0.4 → 0.0.5
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 +8 -8
- data/README.md +10 -8
- data/bin/rspec +16 -0
- data/lib/webmock-rspec-helper.rb +2 -2
- data/lib/webmock-rspec-helper/version.rb +1 -1
- data/spec/webmock-rspec-helper_spec.rb +16 -10
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MjNjMzc5ZWQ0OTZkOWU4NzkzYmUxNzE4NGFhMjMyM2NhZjQwNzRlMQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZjQyNWE0NzMzYWYyMjg3NjQ5Njg3N2RjYjZlMmQ0NTc0ZTI5NWE0YQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NzI4MTI0MjY5NTcxYzk1MGRjN2E5MjM3OTg5ZWUyYTUwYTQ1ZGNhZjUzM2Y3
|
10
|
+
NWFhZGYwMjE4NDc2NDE3ZjYyMTVlYWI1ODkyNTljYTM4ZTAwN2NlNTdkZTI0
|
11
|
+
MzgyMDg4Y2UyNjkzZGM4ZmU2NTlkZTg2ZjRlZGJjZmY2ODY0MTQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZWY4YWYzNzc1MjFiMGU1NDBmN2E1NDNmNzNmYjg3MjIxZmQ3ZmI3MjQ3NjUw
|
14
|
+
MjJiYjA4OWQxNzdiOGVlNzI2NzcyOWM0MDczYzlkMTQ2MjJjNmI5MTM5NmVk
|
15
|
+
MjBlYWVhMDA5NDQ3MjUxYzdhMTkxMjcxMWViNTY5MzhiMmQwZWY=
|
data/README.md
CHANGED
@@ -28,17 +28,19 @@ spec/
|
|
28
28
|
|
29
29
|
You can use `webmock` within webmock_spec.rb like this:
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
`webmock :get, %r[google.com] => 'GET_google.401.json'`
|
31
|
+
```ruby
|
32
|
+
# Will stub requests to Google to return the contents of GET_google.json. Requests will return a 200 status code.
|
33
|
+
webmock :get, %r[google.com] => 'GET_google.json'
|
36
34
|
|
37
|
-
|
35
|
+
# Stub requests to Google to return the contents of GET_google.401.json. Requests will return a 401 status code.
|
36
|
+
webmock :get, %r[google.com] => 'GET_google.401.json'
|
38
37
|
|
39
|
-
|
38
|
+
# Stub requests to Google to return a 204 status code and an empty body
|
39
|
+
webmock :get, %r[google.com] => 204
|
40
40
|
|
41
|
-
|
41
|
+
# Stub requests to Google to return the contents of GET_google.json when the query parameters match { test: '123' }
|
42
|
+
webmock :get, %r[:google.com] => 'GET_google.json', with: Hash[query: { test: '123' }]
|
43
|
+
```
|
42
44
|
|
43
45
|
## Contributing
|
44
46
|
|
data/bin/rspec
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# This file was generated by Bundler.
|
4
|
+
#
|
5
|
+
# The application 'rspec' is installed as part of a gem, and
|
6
|
+
# this file is here to facilitate running it.
|
7
|
+
#
|
8
|
+
|
9
|
+
require "pathname"
|
10
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
11
|
+
Pathname.new(__FILE__).realpath)
|
12
|
+
|
13
|
+
require "rubygems"
|
14
|
+
require "bundler/setup"
|
15
|
+
|
16
|
+
load Gem.bin_path("rspec-core", "rspec")
|
data/lib/webmock-rspec-helper.rb
CHANGED
@@ -5,7 +5,7 @@ module WebMock
|
|
5
5
|
module RSpec
|
6
6
|
module Helper
|
7
7
|
|
8
|
-
def webmock(method, mocks = {}, with: false)
|
8
|
+
def webmock(method, mocks = {}, with: false, headers: nil)
|
9
9
|
mocks.each do |regex, result|
|
10
10
|
if result.to_s =~ /\A\d+\z/
|
11
11
|
status = result
|
@@ -17,7 +17,7 @@ module WebMock
|
|
17
17
|
|
18
18
|
stub = WebMock.stub_request(method, regex)
|
19
19
|
stub.with(with) if with
|
20
|
-
stub.to_return status: status.to_i, body: body
|
20
|
+
stub.to_return status: status.to_i, body: body, headers: headers
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
@@ -15,36 +15,42 @@ end
|
|
15
15
|
|
16
16
|
describe '#webmock' do
|
17
17
|
it 'mocks GET google using default response 200' do
|
18
|
-
webmock :get, %r
|
19
|
-
response = GET
|
18
|
+
webmock :get, %r{google.com} => 'GET_google.json'
|
19
|
+
response = GET 'http://google.com'
|
20
20
|
expect(response.status).to eq 200
|
21
21
|
expect(response.body['google']).to eq true
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'mocks GET google with custom response code' do
|
25
|
-
webmock :get, %r
|
26
|
-
response = GET
|
25
|
+
webmock :get, %r{google.com} => 'GET_google.999.json'
|
26
|
+
response = GET 'http://google.com'
|
27
27
|
expect(response.status).to eq 999
|
28
28
|
expect(response.body['google']).to eq true
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'accepts a block that returns the with options' do
|
32
|
-
webmock :get, %r
|
33
|
-
expect { GET
|
34
|
-
response = GET
|
32
|
+
webmock :get, %r{google.com} => 'GET_google.json', with: Hash[query: { test: '123' }]
|
33
|
+
expect { GET 'http://google.com' }.to raise_error WebMock::NetConnectNotAllowedError
|
34
|
+
response = GET 'http://google.com?test=123'
|
35
35
|
expect(response.status).to eq 200
|
36
36
|
end
|
37
37
|
|
38
38
|
it 'mocks GET google with an empty body and given status code' do
|
39
|
-
webmock :get, %r
|
40
|
-
response = GET
|
39
|
+
webmock :get, %r{google.com} => 204
|
40
|
+
response = GET 'http://google.com'
|
41
41
|
expect(response.body).to eq ''
|
42
42
|
expect(response.status).to eq 204
|
43
43
|
end
|
44
|
+
|
45
|
+
it 'mocks GET google with response headers' do
|
46
|
+
webmock :get, %r{google.com} => 'GET_google.json', headers: { 'Content-Type' => 'text/html' }
|
47
|
+
response = GET 'http://google.com'
|
48
|
+
expect(response.content_type).to eq 'text/html'
|
49
|
+
end
|
44
50
|
end
|
45
51
|
|
46
52
|
def GET(url)
|
47
53
|
response = Net::HTTP.get_response URI.parse(url)
|
48
54
|
body = response.body ? JSON.parse(response.body) : ''
|
49
|
-
OpenStruct.new status: response.code.to_i, body: body
|
55
|
+
OpenStruct.new status: response.code.to_i, body: body, content_type: response['Content-Type']
|
50
56
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webmock-rspec-helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Logan Serman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -83,7 +83,8 @@ dependencies:
|
|
83
83
|
description: Easily define WebMock stubs that point to JSON files
|
84
84
|
email:
|
85
85
|
- logan.serman@metova.com
|
86
|
-
executables:
|
86
|
+
executables:
|
87
|
+
- rspec
|
87
88
|
extensions: []
|
88
89
|
extra_rdoc_files: []
|
89
90
|
files:
|
@@ -93,6 +94,7 @@ files:
|
|
93
94
|
- LICENSE.txt
|
94
95
|
- README.md
|
95
96
|
- Rakefile
|
97
|
+
- bin/rspec
|
96
98
|
- helper.rb
|
97
99
|
- lib/webmock-rspec-helper.rb
|
98
100
|
- lib/webmock-rspec-helper/version.rb
|