restful_resource 2.7.0 → 2.10.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,7 +7,7 @@ RSpec.describe RestfulResource::RailsValidations do
7
7
  allow(Dealer).to receive(:http).and_return(@mock_http)
8
8
  end
9
9
 
10
- context '#patch without errors' do
10
+ describe '#patch without errors' do
11
11
  before do
12
12
  data = { name: 'Barak' }
13
13
  expected_response = RestfulResource::Response.new(body: { name: 'Barak' }.to_json)
@@ -25,7 +25,7 @@ RSpec.describe RestfulResource::RailsValidations do
25
25
  end
26
26
  end
27
27
 
28
- context '#patch with errors' do
28
+ describe '#patch with errors' do
29
29
  before do
30
30
  data = { name: 'Leonardo' }
31
31
  @error = 'Cannot use Ninja Turtles names'
@@ -72,13 +72,13 @@ RSpec.describe RestfulResource::RailsValidations do
72
72
  end
73
73
  end
74
74
 
75
- context '#patch without errors' do
75
+ describe '#put without errors' do
76
76
  before do
77
77
  data = { name: 'Barak' }
78
78
  expected_response = RestfulResource::Response.new(body: { name: 'Barak' }.to_json)
79
- expect_patch('http://api.carwow.co.uk/dealers/1', expected_response, data: data)
79
+ expect_put('http://api.carwow.co.uk/dealers/1', expected_response, data: data)
80
80
 
81
- @object = Dealer.patch(1, data: data)
81
+ @object = Dealer.put(1, data: data)
82
82
  end
83
83
 
84
84
  it 'returns object' do
@@ -90,7 +90,7 @@ RSpec.describe RestfulResource::RailsValidations do
90
90
  end
91
91
  end
92
92
 
93
- context '#put with errors' do
93
+ describe '#put with errors' do
94
94
  before do
95
95
  data = { name: 'Leonardo' }
96
96
  @error = 'Cannot use Ninja Turtles names'
@@ -137,7 +137,7 @@ RSpec.describe RestfulResource::RailsValidations do
137
137
  end
138
138
  end
139
139
 
140
- context '#post without errors' do
140
+ describe '#post without errors' do
141
141
  before do
142
142
  data = { name: 'Barak' }
143
143
  expected_response = RestfulResource::Response.new(body: { name: 'Barak' }.to_json)
@@ -155,7 +155,7 @@ RSpec.describe RestfulResource::RailsValidations do
155
155
  end
156
156
  end
157
157
 
158
- context '#post with errors' do
158
+ describe '#post with errors' do
159
159
  before do
160
160
  data = { name: 'Leonardo' }
161
161
  @error = 'Cannot use Ninja Turtles names'
@@ -192,7 +192,7 @@ RSpec.describe RestfulResource::RailsValidations do
192
192
  end
193
193
  end
194
194
 
195
- context '#get without errors' do
195
+ describe '#get without errors' do
196
196
  before do
197
197
  expected_response = RestfulResource::Response.new(body: { name: 'Barak' }.to_json)
198
198
  expect_get('http://api.carwow.co.uk/dealers', expected_response)
@@ -209,7 +209,7 @@ RSpec.describe RestfulResource::RailsValidations do
209
209
  end
210
210
  end
211
211
 
212
- context '#get with errors' do
212
+ describe '#get with errors' do
213
213
  before do
214
214
  @error = 'Missing parameter'
215
215
  expected_response = RestfulResource::Response.new(body: { errors: [@error] }.to_json)
@@ -239,4 +239,53 @@ RSpec.describe RestfulResource::RailsValidations do
239
239
  expect(@object.errors).to eq @error
240
240
  end
241
241
  end
242
+
243
+ describe '#delete' do
244
+ subject { Dealer.delete(123) }
245
+
246
+ context 'without errors' do
247
+ before do
248
+ expected_response = RestfulResource::Response.new(body: { name: 'Barak' }.to_json)
249
+ expect_delete('http://api.carwow.co.uk/dealers/123', expected_response)
250
+ end
251
+
252
+ it 'returns object' do
253
+ expect(subject.name).to eq 'Barak'
254
+ end
255
+
256
+ it 'returns valid object' do
257
+ expect(subject).to be_valid
258
+ end
259
+ end
260
+
261
+ context 'with errors' do
262
+ let(:errors) { { errors: ['Cannot use Ninja Turtles names'] } }
263
+
264
+ before do
265
+ expected_response = RestfulResource::Response.new(body: errors.to_json)
266
+ expect_delete_with_unprocessable_entity('http://api.carwow.co.uk/dealers/123', expected_response)
267
+ end
268
+
269
+ it 'has an error' do
270
+ expect(subject.errors.count).to eq 1
271
+ end
272
+
273
+ it 'has correct error' do
274
+ expect(subject.errors.first).to eq 'Cannot use Ninja Turtles names'
275
+ end
276
+
277
+ it 'returns not valid object' do
278
+ expect(subject).not_to be_valid
279
+ end
280
+
281
+ context 'when there is a single error' do
282
+ let(:errors) { 'Cannot use Ninja Turtles names' }
283
+
284
+ it 'handles errors returned as root object' do
285
+ expect(subject).not_to be_valid
286
+ expect(subject.errors).to eq errors
287
+ end
288
+ end
289
+ end
290
+ end
242
291
  end
@@ -1,3 +1,4 @@
1
+ require 'pry'
1
2
  require 'rspec'
2
3
  require 'rspec/its'
3
4
  require_relative '../lib/restful_resource'
@@ -65,3 +66,10 @@ def expect_post_with_unprocessable_entity(url, response, data: {})
65
66
  exception = RestfulResource::HttpClient::UnprocessableEntity.new(request, rest_client_response)
66
67
  expect(@mock_http).to receive(:post).with(url, data: data, headers: {}, open_timeout: nil, timeout: nil).and_raise(exception)
67
68
  end
69
+
70
+ def expect_delete_with_unprocessable_entity(url, response)
71
+ request = RestfulResource::Request.new(:delete, url)
72
+ rest_client_response = OpenStruct.new(body: response.body, headers: response.headers, code: response.status)
73
+ exception = RestfulResource::HttpClient::UnprocessableEntity.new(request, rest_client_response)
74
+ expect(@mock_http).to receive(:delete).with(url, headers: {}, open_timeout: nil, timeout: nil).and_raise(exception)
75
+ end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restful_resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0
4
+ version: 2.10.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Santoro
8
8
  - Federico Rebora
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-10-09 00:00:00.000000000 Z
12
+ date: 2020-11-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -40,7 +40,7 @@ dependencies:
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
42
  - !ruby/object:Gem::Dependency
43
- name: rake
43
+ name: pry
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - ">="
@@ -54,7 +54,7 @@ dependencies:
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  - !ruby/object:Gem::Dependency
57
- name: rspec
57
+ name: rake
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - ">="
@@ -68,7 +68,7 @@ dependencies:
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
70
  - !ruby/object:Gem::Dependency
71
- name: rspec_junit_formatter
71
+ name: rspec
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - ">="
@@ -96,47 +96,61 @@ dependencies:
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  - !ruby/object:Gem::Dependency
99
- name: activesupport
99
+ name: rspec_junit_formatter
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - ">="
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
- type: :runtime
105
+ type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - ">="
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: activesupport
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '6.0'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '6.0'
112
126
  - !ruby/object:Gem::Dependency
113
127
  name: faraday
114
128
  requirement: !ruby/object:Gem::Requirement
115
129
  requirements:
116
130
  - - "~>"
117
131
  - !ruby/object:Gem::Version
118
- version: 0.15.0
132
+ version: '1.0'
119
133
  type: :runtime
120
134
  prerelease: false
121
135
  version_requirements: !ruby/object:Gem::Requirement
122
136
  requirements:
123
137
  - - "~>"
124
138
  - !ruby/object:Gem::Version
125
- version: 0.15.0
139
+ version: '1.0'
126
140
  - !ruby/object:Gem::Dependency
127
141
  name: faraday-cdn-metrics
128
142
  requirement: !ruby/object:Gem::Requirement
129
143
  requirements:
130
- - - ">="
144
+ - - "~>"
131
145
  - !ruby/object:Gem::Version
132
- version: '0'
146
+ version: '0.2'
133
147
  type: :runtime
134
148
  prerelease: false
135
149
  version_requirements: !ruby/object:Gem::Requirement
136
150
  requirements:
137
- - - ">="
151
+ - - "~>"
138
152
  - !ruby/object:Gem::Version
139
- version: '0'
153
+ version: '0.2'
140
154
  - !ruby/object:Gem::Dependency
141
155
  name: faraday-encoding
142
156
  requirement: !ruby/object:Gem::Requirement
@@ -155,30 +169,30 @@ dependencies:
155
169
  name: faraday-http-cache
156
170
  requirement: !ruby/object:Gem::Requirement
157
171
  requirements:
158
- - - ">="
172
+ - - "~>"
159
173
  - !ruby/object:Gem::Version
160
- version: '0'
174
+ version: '2.2'
161
175
  type: :runtime
162
176
  prerelease: false
163
177
  version_requirements: !ruby/object:Gem::Requirement
164
178
  requirements:
165
- - - ">="
179
+ - - "~>"
166
180
  - !ruby/object:Gem::Version
167
- version: '0'
181
+ version: '2.2'
168
182
  - !ruby/object:Gem::Dependency
169
183
  name: faraday_middleware
170
184
  requirement: !ruby/object:Gem::Requirement
171
185
  requirements:
172
- - - ">="
186
+ - - "~>"
173
187
  - !ruby/object:Gem::Version
174
- version: '0'
188
+ version: '1.0'
175
189
  type: :runtime
176
190
  prerelease: false
177
191
  version_requirements: !ruby/object:Gem::Requirement
178
192
  requirements:
179
- - - ">="
193
+ - - "~>"
180
194
  - !ruby/object:Gem::Version
181
- version: '0'
195
+ version: '1.0'
182
196
  - !ruby/object:Gem::Dependency
183
197
  name: link_header
184
198
  requirement: !ruby/object:Gem::Requirement
@@ -197,30 +211,30 @@ dependencies:
197
211
  name: rack
198
212
  requirement: !ruby/object:Gem::Requirement
199
213
  requirements:
200
- - - ">="
214
+ - - "~>"
201
215
  - !ruby/object:Gem::Version
202
- version: '0'
216
+ version: '2.2'
203
217
  type: :runtime
204
218
  prerelease: false
205
219
  version_requirements: !ruby/object:Gem::Requirement
206
220
  requirements:
207
- - - ">="
221
+ - - "~>"
208
222
  - !ruby/object:Gem::Version
209
- version: '0'
223
+ version: '2.2'
210
224
  - !ruby/object:Gem::Dependency
211
225
  name: typhoeus
212
226
  requirement: !ruby/object:Gem::Requirement
213
227
  requirements:
214
- - - ">="
228
+ - - "~>"
215
229
  - !ruby/object:Gem::Version
216
- version: '0'
230
+ version: '1.4'
217
231
  type: :runtime
218
232
  prerelease: false
219
233
  version_requirements: !ruby/object:Gem::Requirement
220
234
  requirements:
221
- - - ">="
235
+ - - "~>"
222
236
  - !ruby/object:Gem::Version
223
- version: '0'
237
+ version: '1.4'
224
238
  description: A simple activerecord inspired rest resource base class implemented using
225
239
  rest-client
226
240
  email:
@@ -274,7 +288,7 @@ homepage: http://www.github.com/carwow/restful_resource
274
288
  licenses:
275
289
  - MIT
276
290
  metadata: {}
277
- post_install_message:
291
+ post_install_message:
278
292
  rdoc_options: []
279
293
  require_paths:
280
294
  - lib
@@ -289,8 +303,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
289
303
  - !ruby/object:Gem::Version
290
304
  version: '0'
291
305
  requirements: []
292
- rubygems_version: 3.0.3
293
- signing_key:
306
+ rubygems_version: 3.1.2
307
+ signing_key:
294
308
  specification_version: 4
295
309
  summary: A simple activerecord inspired rest resource base class implemented using
296
310
  rest-client