spaceborne 0.1.31 → 0.1.36
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/README.md +2 -1
- data/lib/spaceborne.rb +18 -11
- data/lib/spaceborne/version.rb +1 -1
- data/spaceborne.gemspec +3 -3
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8aff74d5d3bedfe5854840e95db163e1c1cd71849172d21f01067ec952b29451
|
4
|
+
data.tar.gz: 6bbc1007251b0c9415d74dd838c5ea9182a9d3063d778f3c15791026a10f4537
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57eefe3812beebd37b2a6e879ce8b518c99fff0cb434779a122dab68b911c7ba355306009421455bac34f02ee1becde5b1bb237908678cf7b6f5d527a7973e75
|
7
|
+
data.tar.gz: e9bb102e8fe35b2e65046c7bd8e7b25ff60f8bcce8173bf88da60816ea14add4df1019cd62530fd31aefe147966ead18a2675d57afd48af940fb54aaa001c695
|
data/README.md
CHANGED
@@ -205,8 +205,9 @@ Validation for headers follows the same pattern as above, although nesting of mu
|
|
205
205
|
* `expect_header_types same arguments/handling as expect_json_types`
|
206
206
|
5. It is possible to use non-json data in a request
|
207
207
|
6. Expectations on a response with an array of hashes with keys that are unknown, but that have a defined structure are supported (using the '*' in a path)
|
208
|
+
7. Responses that have header with Content-Encoding of gzip are gunzip'd in json_body
|
208
209
|
|
209
|
-
The following example shows how
|
210
|
+
The following example shows how extension # 6 works
|
210
211
|
|
211
212
|
```ruby
|
212
213
|
{ "array_of_hashes": [
|
data/lib/spaceborne.rb
CHANGED
@@ -26,7 +26,7 @@ module Spaceborne
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def add_response
|
29
|
-
"
|
29
|
+
"\nRESPONSE: #{response.code}\n"\
|
30
30
|
" HEADERS:\n#{JSON.pretty_generate(response.headers)}\n"\
|
31
31
|
<< response_body
|
32
32
|
end
|
@@ -51,15 +51,22 @@ module Spaceborne
|
|
51
51
|
rescue Exception => e
|
52
52
|
raise e unless response
|
53
53
|
|
54
|
-
e.message
|
55
|
-
raise e
|
54
|
+
raise RSpec::Expectations::ExpectationNotMetError.new(e.message + request_info)
|
56
55
|
end
|
57
56
|
end
|
58
57
|
|
59
58
|
# monkeypatch Airborne
|
60
59
|
module Airborne
|
60
|
+
def decode_body
|
61
|
+
if response.headers[:content_encoding]&.include?('gzip')
|
62
|
+
Zlib::Inflate.new(32 + Zlib::MAX_WBITS).inflate(response.body)
|
63
|
+
else
|
64
|
+
response.body
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
61
68
|
def json_body
|
62
|
-
@json_body ||= JSON.parse(
|
69
|
+
@json_body ||= JSON.parse(decode_body, symbolize_names: true)
|
63
70
|
rescue StandardError
|
64
71
|
raise InvalidJsonError, 'Api request returned invalid json'
|
65
72
|
end
|
@@ -159,16 +166,16 @@ module Airborne
|
|
159
166
|
end
|
160
167
|
end
|
161
168
|
|
162
|
-
def exception_path_adder(args)
|
169
|
+
def exception_path_adder(args, body)
|
163
170
|
yield
|
164
|
-
rescue Airborne::ExpectationError => e
|
165
|
-
e.message << "\nexpect arguments: #{args}"
|
171
|
+
rescue RSpec::Expectations::ExpectationNotMetError, Airborne::ExpectationError => e
|
172
|
+
e.message << "\nexpect arguments: #{args}\ndata element: #{body}"
|
166
173
|
raise e
|
167
174
|
end
|
168
175
|
|
169
176
|
def expect_json_types(*args)
|
170
177
|
call_with_relative_path(json_body, args) do |param, body|
|
171
|
-
exception_path_adder(args) do
|
178
|
+
exception_path_adder(args, body) do
|
172
179
|
expect_json_types_impl(param, body)
|
173
180
|
end
|
174
181
|
end
|
@@ -176,7 +183,7 @@ module Airborne
|
|
176
183
|
|
177
184
|
def expect_json(*args)
|
178
185
|
call_with_relative_path(json_body, args) do |param, body|
|
179
|
-
exception_path_adder(args) do
|
186
|
+
exception_path_adder(args, body) do
|
180
187
|
expect_json_impl(param, body)
|
181
188
|
end
|
182
189
|
end
|
@@ -184,7 +191,7 @@ module Airborne
|
|
184
191
|
|
185
192
|
def expect_header_types(*args)
|
186
193
|
call_with_relative_path(response.headers, args) do |param, body|
|
187
|
-
exception_path_adder(args) do
|
194
|
+
exception_path_adder(args, body) do
|
188
195
|
expect_json_types_impl(param, body)
|
189
196
|
end
|
190
197
|
end
|
@@ -192,7 +199,7 @@ module Airborne
|
|
192
199
|
|
193
200
|
def expect_header(*args)
|
194
201
|
call_with_relative_path(response.headers, args) do |param, body|
|
195
|
-
exception_path_adder(args) do
|
202
|
+
exception_path_adder(args, body) do
|
196
203
|
expect_json_impl(param, body)
|
197
204
|
end
|
198
205
|
end
|
data/lib/spaceborne/version.rb
CHANGED
data/spaceborne.gemspec
CHANGED
@@ -22,12 +22,12 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.require_paths = ['lib']
|
23
23
|
|
24
24
|
spec.add_runtime_dependency 'activesupport'
|
25
|
-
spec.add_runtime_dependency 'airborne', '~> 0.
|
25
|
+
spec.add_runtime_dependency 'airborne', '~> 0.3'
|
26
26
|
spec.add_runtime_dependency 'curlyrest', '~> 0.1.30'
|
27
27
|
spec.add_runtime_dependency 'rack'
|
28
|
-
spec.add_runtime_dependency 'rack-test', '~>
|
28
|
+
spec.add_runtime_dependency 'rack-test', '~> 1.1', '<= 2.0'
|
29
29
|
spec.add_runtime_dependency 'rest-client', '< 3.0', '>= 1.7.3'
|
30
|
-
spec.add_runtime_dependency 'rspec', '~> 3.
|
30
|
+
spec.add_runtime_dependency 'rspec', '~> 3.8'
|
31
31
|
spec.add_development_dependency 'webmock', '~> 0'
|
32
32
|
|
33
33
|
spec.add_development_dependency 'byebug', '~> 10.0.2'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spaceborne
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.36
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Keith Williams
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: '0.3'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: '0.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: curlyrest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,20 +72,20 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
76
|
-
- - "
|
75
|
+
version: '1.1'
|
76
|
+
- - "<="
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version: 0
|
78
|
+
version: '2.0'
|
79
79
|
type: :runtime
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
83
|
- - "~>"
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version: '
|
86
|
-
- - "
|
85
|
+
version: '1.1'
|
86
|
+
- - "<="
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: 0
|
88
|
+
version: '2.0'
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
name: rest-client
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,14 +112,14 @@ dependencies:
|
|
112
112
|
requirements:
|
113
113
|
- - "~>"
|
114
114
|
- !ruby/object:Gem::Version
|
115
|
-
version: '3.
|
115
|
+
version: '3.8'
|
116
116
|
type: :runtime
|
117
117
|
prerelease: false
|
118
118
|
version_requirements: !ruby/object:Gem::Requirement
|
119
119
|
requirements:
|
120
120
|
- - "~>"
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version: '3.
|
122
|
+
version: '3.8'
|
123
123
|
- !ruby/object:Gem::Dependency
|
124
124
|
name: webmock
|
125
125
|
requirement: !ruby/object:Gem::Requirement
|