spaceborne 0.1.30 → 0.1.35

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 19012125b047e951b20210def0f4ea65b6c7f10542e666eb153df34e02783d34
4
- data.tar.gz: dd9e9059c96a19b14baad98b4a86454a41643bb220094c7df62db213017aa99c
3
+ metadata.gz: fda0ec521dee90309a515c24dba4c721fdc79b9327ef60b07ed03f0c0f47b90a
4
+ data.tar.gz: 524d7b9f58093c7e837fafc716d95f23cb82203320ccd4bbd41068397594bf13
5
5
  SHA512:
6
- metadata.gz: 654824c04e0658652b73f32cf59274d63ffc78e44e5f2119b31f367300b70ae76fbce719b8eea06b574acd23de3a4c57571c7bd3d12000a75d713df707784b19
7
- data.tar.gz: b9af3be6d62faa09701ca474bb49141e603bff8d00227fcab1c711e8461866cf7bf8c1bb1bd8bbdc56dfb334a54ae158b2cec534b5faf343e84e60462e12fc7e
6
+ metadata.gz: 1a437dcb98a2fa112b0d329a7a9ad030f6a431f31fa8169f3a0030fe0a6da2fd841eaef524e538e95afc46e1318327fb483c6beb39e4ba3abc94bc4462dea482
7
+ data.tar.gz: 398dab27fec49cfa6ac819bc853988a83fec7799856f07e00d99fb991b312eed21d2157eefc14dff4da75915693cc8eb440a8852037362675f54dc042912e86d
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 this works
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
- "RESPONSE: #{response.code}\n"\
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 << request_info
55
- raise e
54
+ raise 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(response.body, symbolize_names: true)
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
@@ -1,3 +1,3 @@
1
1
  module Spaceborne
2
- VERSION = '0.1.30'.freeze
2
+ VERSION = '0.1.35'.freeze
3
3
  end
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.2.13'
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', '~> 0.6', '>= 0.6.2'
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.1'
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.30
4
+ version: 0.1.35
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keith Williams
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-12-18 00:00:00.000000000 Z
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.2.13
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.2.13
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: '0.6'
76
- - - ">="
75
+ version: '1.1'
76
+ - - "<="
77
77
  - !ruby/object:Gem::Version
78
- version: 0.6.2
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: '0.6'
86
- - - ">="
85
+ version: '1.1'
86
+ - - "<="
87
87
  - !ruby/object:Gem::Version
88
- version: 0.6.2
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.1'
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.1'
122
+ version: '3.8'
123
123
  - !ruby/object:Gem::Dependency
124
124
  name: webmock
125
125
  requirement: !ruby/object:Gem::Requirement