restful_resource 2.3.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,13 +2,13 @@ require_relative '../spec_helper'
2
2
 
3
3
  RSpec.describe RestfulResource::Base do
4
4
  before do
5
- @mock_http = double("mock_http")
6
- allow(RestfulResource::Base).to receive(:http).and_return(@mock_http)
7
- RestfulResource::Base.configure(base_url: 'http://api.carwow.co.uk/')
5
+ @mock_http = double('mock_http')
6
+ allow(described_class).to receive(:http).and_return(@mock_http)
7
+ described_class.configure(base_url: 'http://api.carwow.co.uk/')
8
8
  end
9
9
 
10
- it "should act as an openobject" do
11
- object = RestfulResource::Base.new(name: 'David', surname: 'Santoro')
10
+ it 'acts as an openobject' do
11
+ object = described_class.new(name: 'David', surname: 'Santoro')
12
12
 
13
13
  expect(object.name).to eq 'David'
14
14
  expect(object.surname).to eq 'Santoro'
@@ -16,15 +16,15 @@ RSpec.describe RestfulResource::Base do
16
16
  end
17
17
 
18
18
  describe '#parse_json' do
19
- it 'should not fail on empty string' do
20
- expect {RestfulResource::Base.send(:parse_json, ' ')}.not_to raise_error
19
+ it 'does not fail on empty string' do
20
+ expect { described_class.send(:parse_json, ' ') }.not_to raise_error
21
21
  end
22
22
  end
23
23
 
24
- describe "#find" do
25
- it "should return an object instance for the correct id" do
26
- expected_response = RestfulResource::Response.new(body: {id: 12}.to_json)
27
- expect_get("http://api.carwow.co.uk/makes/12", expected_response)
24
+ describe '#find' do
25
+ it 'returns an object instance for the correct id' do
26
+ expected_response = RestfulResource::Response.new(body: { id: 12 }.to_json)
27
+ expect_get('http://api.carwow.co.uk/makes/12', expected_response)
28
28
 
29
29
  object = Make.find(12)
30
30
 
@@ -32,56 +32,58 @@ RSpec.describe RestfulResource::Base do
32
32
  expect(object.id).to be 12
33
33
  end
34
34
 
35
- it "should return an object instance for nested routes" do
36
- expected_response = RestfulResource::Response.new(body: {name: 'Golf', price: 15000}.to_json)
37
- expect_get("http://api.carwow.co.uk/groups/15/makes/Volkswagen/models/Golf", expected_response)
35
+ it 'returns an object instance for nested routes' do
36
+ expected_response = RestfulResource::Response.new(body: { name: 'Golf', price: 15_000 }.to_json)
37
+ expect_get('http://api.carwow.co.uk/groups/15/makes/Volkswagen/models/Golf', expected_response)
38
38
 
39
39
  object = Model.find('Golf', make_slug: 'Volkswagen', group_id: 15)
40
40
 
41
41
  expect(object).not_to be_nil
42
42
  expect(object.name).to eq 'Golf'
43
- expect(object.price).to eq 15000
43
+ expect(object.price).to eq 15_000
44
44
  end
45
45
 
46
- it "should encode parameters correctly in the url" do
47
- expected_response = RestfulResource::Response.new(body: {name: 'Golf', price: 15000}.to_json)
48
- expect_get("http://api.carwow.co.uk/groups/xxx+yyy%3Fl%3D7/makes/Land+Rover%3Fx%3D0.123/models/Golf+Cabriolet%3Ftest", expected_response)
46
+ it 'encodes parameters correctly in the url' do
47
+ expected_response = RestfulResource::Response.new(body: { name: 'Golf', price: 15_000 }.to_json)
48
+ expect_get('http://api.carwow.co.uk/groups/xxx+yyy%3Fl%3D7/makes/Land+Rover%3Fx%3D0.123/models/Golf+Cabriolet%3Ftest', expected_response)
49
49
 
50
50
  object = Model.find('Golf Cabriolet?test', make_slug: 'Land Rover?x=0.123', group_id: 'xxx yyy?l=7')
51
51
  end
52
52
 
53
53
  it 'accepts custom headers' do
54
- expect_get("http://api.carwow.co.uk/makes/12",
54
+ expect_get('http://api.carwow.co.uk/makes/12',
55
55
  RestfulResource::Response.new,
56
- headers: { cache_control: 'no-cache' })
56
+ headers: { cache_control: 'no-cache' }
57
+ )
57
58
 
58
59
  Make.find(12, headers: { cache_control: 'no-cache' })
59
60
  end
60
61
 
61
62
  it 'accepts no_cache option' do
62
- expect_get("http://api.carwow.co.uk/makes/12",
63
+ expect_get('http://api.carwow.co.uk/makes/12',
63
64
  RestfulResource::Response.new,
64
- headers: { cache_control: 'no-cache' })
65
+ headers: { cache_control: 'no-cache' }
66
+ )
65
67
 
66
68
  Make.find(12, no_cache: true)
67
69
  end
68
70
  end
69
71
 
70
- describe "#where" do
71
- it "should return an array of objects" do
72
- expected_response = RestfulResource::Response.new(body: [{name: 'Golf', price: 15000}, {name: 'Polo', price: 11000}].to_json)
73
- expect_get("http://api.carwow.co.uk/groups/15/makes/Volkswagen/models?on_sale=true", expected_response)
72
+ describe '#where' do
73
+ it 'returns an array of objects' do
74
+ expected_response = RestfulResource::Response.new(body: [{ name: 'Golf', price: 15_000 }, { name: 'Polo', price: 11_000 }].to_json)
75
+ expect_get('http://api.carwow.co.uk/groups/15/makes/Volkswagen/models?on_sale=true', expected_response)
74
76
  object = Model.where(make_slug: 'Volkswagen', on_sale: true, group_id: 15)
75
77
 
76
78
  expect(object).not_to be_nil
77
79
  expect(object.length).to eq 2
78
80
  expect(object.first.name).to eq 'Golf'
79
- expect(object.first.price).to eq 15000
81
+ expect(object.first.price).to eq 15_000
80
82
  end
81
83
 
82
- it "should provide a paginated result if response contains rest pagination headers" do
83
- expected_response = response_with_page_information()
84
- expect_get("http://api.carwow.co.uk/groups/15/makes/Volkswagen/models", expected_response)
84
+ it 'provides a paginated result if response contains rest pagination headers' do
85
+ expected_response = response_with_page_information
86
+ expect_get('http://api.carwow.co.uk/groups/15/makes/Volkswagen/models', expected_response)
85
87
 
86
88
  models = Model.where(group_id: 15, make_slug: 'Volkswagen')
87
89
 
@@ -92,26 +94,28 @@ RSpec.describe RestfulResource::Base do
92
94
  end
93
95
 
94
96
  it 'accepts custom headers' do
95
- expect_get("http://api.carwow.co.uk/groups/15/makes/Volkswagen/models?on_sale=true",
97
+ expect_get('http://api.carwow.co.uk/groups/15/makes/Volkswagen/models?on_sale=true',
96
98
  RestfulResource::Response.new,
97
- headers: { cache_control: 'no-cache' })
99
+ headers: { cache_control: 'no-cache' }
100
+ )
98
101
 
99
102
  Model.where(make_slug: 'Volkswagen', on_sale: true, group_id: 15, headers: { cache_control: 'no-cache' })
100
103
  end
101
104
 
102
105
  it 'accepts no_cache option' do
103
- expect_get("http://api.carwow.co.uk/groups/15/makes/Volkswagen/models?on_sale=true",
106
+ expect_get('http://api.carwow.co.uk/groups/15/makes/Volkswagen/models?on_sale=true',
104
107
  RestfulResource::Response.new,
105
- headers: { cache_control: 'no-cache' })
108
+ headers: { cache_control: 'no-cache' }
109
+ )
106
110
 
107
111
  Model.where(make_slug: 'Volkswagen', on_sale: true, group_id: 15, no_cache: true)
108
112
  end
109
113
  end
110
114
 
111
- describe "#all" do
112
- it "should return all items" do
113
- expected_response = RestfulResource::Response.new(body: [{name: 'Volkswagen'}, {name: 'Audi'}].to_json)
114
- expect_get("http://api.carwow.co.uk/makes", expected_response)
115
+ describe '#all' do
116
+ it 'returns all items' do
117
+ expected_response = RestfulResource::Response.new(body: [{ name: 'Volkswagen' }, { name: 'Audi' }].to_json)
118
+ expect_get('http://api.carwow.co.uk/makes', expected_response)
115
119
  makes = Make.all
116
120
 
117
121
  expect(makes).not_to be_nil
@@ -120,47 +124,49 @@ RSpec.describe RestfulResource::Base do
120
124
  end
121
125
 
122
126
  it 'accepts custom headers' do
123
- expect_get("http://api.carwow.co.uk/makes",
127
+ expect_get('http://api.carwow.co.uk/makes',
124
128
  RestfulResource::Response.new,
125
- headers: { cache_control: 'no-cache' })
129
+ headers: { cache_control: 'no-cache' }
130
+ )
126
131
 
127
132
  Make.all(headers: { cache_control: 'no-cache' })
128
133
  end
129
134
 
130
135
  it 'accepts no_cache option' do
131
- expect_get("http://api.carwow.co.uk/makes",
136
+ expect_get('http://api.carwow.co.uk/makes',
132
137
  RestfulResource::Response.new,
133
- headers: { cache_control: 'no-cache' })
138
+ headers: { cache_control: 'no-cache' }
139
+ )
134
140
 
135
141
  Make.all(no_cache: true)
136
142
  end
137
143
  end
138
144
 
139
- describe "#base_url" do
140
- it "should be different for each subclass of Base" do
141
- BaseA.configure(base_url: "http://a.carwow.co.uk")
145
+ describe '#base_url' do
146
+ it 'is different for each subclass of Base' do
147
+ BaseA.configure(base_url: 'http://a.carwow.co.uk')
142
148
 
143
- BaseB.configure(base_url: "http://b.carwow.co.uk")
149
+ BaseB.configure(base_url: 'http://b.carwow.co.uk')
144
150
 
145
- expect_get('http://a.carwow.co.uk/testa/1', RestfulResource::Response.new())
146
- expect_get('http://b.carwow.co.uk/testb/2', RestfulResource::Response.new())
151
+ expect_get('http://a.carwow.co.uk/testa/1', RestfulResource::Response.new)
152
+ expect_get('http://b.carwow.co.uk/testb/2', RestfulResource::Response.new)
147
153
 
148
154
  TestA.find(1)
149
155
  TestB.find(2)
150
156
  end
151
157
  end
152
158
 
153
- describe "#action" do
154
- it "should retrieve a resource using a custom action" do
155
- expect_get('http://api.carwow.co.uk/makes/15/lazy', RestfulResource::Response.new(body: {name: 'Volk.'}.to_json))
159
+ describe '#action' do
160
+ it 'retrieves a resource using a custom action' do
161
+ expect_get('http://api.carwow.co.uk/makes/15/lazy', RestfulResource::Response.new(body: { name: 'Volk.' }.to_json))
156
162
 
157
163
  make = Make.action(:lazy).find(15)
158
164
 
159
165
  expect(make.name).to eq 'Volk.'
160
166
  end
161
167
 
162
- it 'should retrieve many resources using a custom action' do
163
- expect_get('http://api.carwow.co.uk/makes/available', RestfulResource::Response.new(body: [{name: 'Audi'}, {name: 'Fiat'}].to_json))
168
+ it 'retrieves many resources using a custom action' do
169
+ expect_get('http://api.carwow.co.uk/makes/available', RestfulResource::Response.new(body: [{ name: 'Audi' }, { name: 'Fiat' }].to_json))
164
170
 
165
171
  make = Make.action(:available).all
166
172
 
@@ -169,36 +175,38 @@ RSpec.describe RestfulResource::Base do
169
175
  end
170
176
  end
171
177
 
172
- describe "#get" do
173
- it "should return an open_object" do
174
- expected_response = RestfulResource::Response.new(body: {average_score: 4.3}.to_json, status: 200)
178
+ describe '#get' do
179
+ it 'returns an open_object' do
180
+ expected_response = RestfulResource::Response.new(body: { average_score: 4.3 }.to_json, status: 200)
175
181
  expect_get('http://api.carwow.co.uk/makes/average_score?make_slug%5B%5D=Volkswagen&make_slug%5B%5D=Audi', expected_response)
176
182
 
177
- object = Make.action(:average_score).get(make_slug: ['Volkswagen', 'Audi'])
183
+ object = Make.action(:average_score).get(make_slug: %w[Volkswagen Audi])
178
184
 
179
185
  expect(object.average_score).to eq 4.3
180
186
  end
181
187
 
182
188
  it 'accepts custom headers' do
183
- expect_get("http://api.carwow.co.uk/makes/average_score",
189
+ expect_get('http://api.carwow.co.uk/makes/average_score',
184
190
  RestfulResource::Response.new,
185
- headers: { cache_control: 'no-cache' })
191
+ headers: { cache_control: 'no-cache' }
192
+ )
186
193
 
187
194
  Make.action(:average_score).get(headers: { cache_control: 'no-cache' })
188
195
  end
189
196
 
190
197
  it 'accepts no_cache option' do
191
- expect_get("http://api.carwow.co.uk/makes/average_score",
198
+ expect_get('http://api.carwow.co.uk/makes/average_score',
192
199
  RestfulResource::Response.new,
193
- headers: { cache_control: 'no-cache' })
200
+ headers: { cache_control: 'no-cache' }
201
+ )
194
202
 
195
203
  Make.action(:average_score).get(no_cache: true)
196
204
  end
197
205
  end
198
206
 
199
- describe "#put" do
200
- it 'should put no data with no params' do
201
- expected_response = RestfulResource::Response.new(body: {name: 'Audi'}.to_json, status: 200)
207
+ describe '#put' do
208
+ it 'puts no data with no params' do
209
+ expected_response = RestfulResource::Response.new(body: { name: 'Audi' }.to_json, status: 200)
202
210
  expect_put('http://api.carwow.co.uk/makes/1', expected_response)
203
211
 
204
212
  object = Make.put(1)
@@ -206,8 +214,8 @@ RSpec.describe RestfulResource::Base do
206
214
  expect(object.name).to eq 'Audi'
207
215
  end
208
216
 
209
- it 'should put no data with no params passed' do
210
- expected_response = RestfulResource::Response.new(body: {name: 'Audi'}.to_json, status: 200)
217
+ it 'puts no data with no params passed' do
218
+ expected_response = RestfulResource::Response.new(body: { name: 'Audi' }.to_json, status: 200)
211
219
  expect_put('http://api.carwow.co.uk/makes/1?make_slug=Volkswagen', expected_response)
212
220
 
213
221
  object = Make.put(1, make_slug: 'Volkswagen')
@@ -215,21 +223,21 @@ RSpec.describe RestfulResource::Base do
215
223
  expect(object.name).to eq 'Audi'
216
224
  end
217
225
 
218
- it 'should put data with params passed' do
219
- data = {make_slug: 'Audi'}
226
+ it 'puts data with params passed' do
227
+ data = { make_slug: 'Audi' }
220
228
 
221
- expected_response = RestfulResource::Response.new(body: {name: 'Audi'}.to_json, status: 200)
229
+ expected_response = RestfulResource::Response.new(body: { name: 'Audi' }.to_json, status: 200)
222
230
  expect_put('http://api.carwow.co.uk/makes/1', expected_response, data: data)
223
231
 
224
- object = Make.put(1, data: {make_slug: 'Audi'})
232
+ object = Make.put(1, data: { make_slug: 'Audi' })
225
233
 
226
234
  expect(object.name).to eq 'Audi'
227
235
  end
228
236
 
229
- it 'should put data with params passed' do
230
- data = {make_slug: 'Audi'}
237
+ it 'puts data with params passed' do
238
+ data = { make_slug: 'Audi' }
231
239
 
232
- expected_response = RestfulResource::Response.new(body: {name: 'Audi'}.to_json, status: 200)
240
+ expected_response = RestfulResource::Response.new(body: { name: 'Audi' }.to_json, status: 200)
233
241
  expect_put('http://api.carwow.co.uk/makes/1?make_slug=Volkswagen', expected_response, data: data)
234
242
 
235
243
  object = Make.put(1, data: data, make_slug: 'Volkswagen')
@@ -238,17 +246,18 @@ RSpec.describe RestfulResource::Base do
238
246
  end
239
247
 
240
248
  it 'accepts custom headers' do
241
- expect_put("http://api.carwow.co.uk/makes/1",
249
+ expect_put('http://api.carwow.co.uk/makes/1',
242
250
  RestfulResource::Response.new,
243
- headers: { accept: 'application/json' })
251
+ headers: { accept: 'application/json' }
252
+ )
244
253
 
245
254
  Make.put(1, data: {}, headers: { accept: 'application/json' })
246
255
  end
247
256
  end
248
257
 
249
- describe "#post" do
250
- it "should post parameters to the collection url" do
251
- data = {slug: 'audi-make', name: 'Audi', num_of_cars: 3}
258
+ describe '#post' do
259
+ it 'posts parameters to the collection url' do
260
+ data = { slug: 'audi-make', name: 'Audi', num_of_cars: 3 }
252
261
 
253
262
  expected_response = RestfulResource::Response.new(body: data.to_json, status: 200)
254
263
  expect_post('http://api.carwow.co.uk/makes', expected_response, data: data)
@@ -260,17 +269,18 @@ RSpec.describe RestfulResource::Base do
260
269
  end
261
270
 
262
271
  it 'accepts custom headers' do
263
- expect_post("http://api.carwow.co.uk/makes",
272
+ expect_post('http://api.carwow.co.uk/makes',
264
273
  RestfulResource::Response.new,
265
- headers: { accept: 'application/json' })
274
+ headers: { accept: 'application/json' }
275
+ )
266
276
 
267
277
  Make.post(data: {}, headers: { accept: 'application/json' })
268
278
  end
269
279
  end
270
280
 
271
- describe "#delete" do
272
- it "should delete to the member url" do
273
- expected_response = RestfulResource::Response.new(body: {deleted: true}.to_json, status: 200)
281
+ describe '#delete' do
282
+ it 'deletes to the member url' do
283
+ expected_response = RestfulResource::Response.new(body: { deleted: true }.to_json, status: 200)
274
284
  expect_delete('http://api.carwow.co.uk/makes/1', expected_response)
275
285
 
276
286
  object = Make.delete(1)
@@ -279,68 +289,75 @@ RSpec.describe RestfulResource::Base do
279
289
  end
280
290
 
281
291
  it 'accepts custom headers' do
282
- expect_delete("http://api.carwow.co.uk/makes/1",
292
+ expect_delete('http://api.carwow.co.uk/makes/1',
283
293
  RestfulResource::Response.new,
284
- headers: { accept: 'application/json' })
294
+ headers: { accept: 'application/json' }
295
+ )
285
296
 
286
297
  Make.delete(1, headers: { accept: 'application/json' })
287
298
  end
288
299
  end
289
300
 
290
- describe ".as_json" do
291
- before :each do
292
- expected_response = RestfulResource::Response.new(body: [{name: 'Audi', slug: 'Audi-Slug'}, {name: 'Fiat', slug: 'Fiat-Slug'}].to_json)
301
+ describe '.as_json' do
302
+ before do
303
+ expected_response = RestfulResource::Response.new(body: [{ name: 'Audi', slug: 'Audi-Slug' }, { name: 'Fiat', slug: 'Fiat-Slug' }].to_json)
293
304
  expect_get('http://api.carwow.co.uk/makes', expected_response)
294
305
 
295
306
  @makes = Make.all
296
307
  end
297
308
 
298
- it 'should not return inner object table' do
299
- expect(@makes.first.as_json).to eq ({'name' => 'Audi', 'slug' => 'Audi-Slug'})
309
+ it 'does not return inner object table' do
310
+ expect(@makes.first.as_json).to eq ({ 'name' => 'Audi', 'slug' => 'Audi-Slug' })
300
311
  end
301
312
 
302
- it 'should return inner object table on selected fields' do
303
- expect(@makes.last.as_json(only: [:name])).to eq ({'name' => 'Fiat'})
313
+ it 'returns inner object table on selected fields' do
314
+ expect(@makes.last.as_json(only: [:name])).to eq ({ 'name' => 'Fiat' })
304
315
  end
305
316
  end
306
317
 
307
- describe ".member_url" do
308
- it "requires a member ID" do
309
- expect{ RestfulResource::Base.member_url('', {}) }.to raise_error(RestfulResource::ResourceIdMissingError)
318
+ describe '.member_url' do
319
+ it 'requires a member ID' do
320
+ expect { described_class.member_url('', {}) }.to raise_error(RestfulResource::ResourceIdMissingError)
310
321
  end
311
322
  end
312
323
 
313
- describe ".configure" do
314
- let(:username) { double }
315
- let(:password) { double }
316
- let(:auth_token) { double }
317
- let(:logger) { double }
318
- let(:cache_store) { double }
319
- let(:instrumentation) { double }
320
- let(:faraday_config) { double }
321
-
322
- it "passes arguments to HttpClient" do
324
+ describe '.configure' do
325
+ let(:username) { double }
326
+ let(:password) { double }
327
+ let(:auth_token) { double }
328
+ let(:logger) { double }
329
+ let(:cache_store) { double }
330
+ let(:instrumentation) { double }
331
+ let(:faraday_config) { double }
332
+ let(:faraday_options) { double }
333
+
334
+ it 'passes arguments to HttpClient' do
323
335
  expect(RestfulResource::HttpClient).to receive(:new).with(username: username,
324
336
  password: password,
325
337
  auth_token: auth_token,
326
338
  logger: logger,
327
339
  cache_store: cache_store,
328
340
  instrumentation: instrumentation,
329
- faraday_config: faraday_config)
330
-
331
- RestfulResource::Base.configure(base_url: 'http://foo.bar',
332
- username: username,
333
- password: password,
334
- auth_token: auth_token,
335
- logger: logger,
336
- cache_store: cache_store,
337
- instrumentation: instrumentation,
338
- faraday_config: faraday_config)
341
+ faraday_config: faraday_config,
342
+ faraday_options: faraday_options
343
+ )
344
+
345
+ described_class.configure(base_url: 'http://foo.bar',
346
+ username: username,
347
+ password: password,
348
+ auth_token: auth_token,
349
+ logger: logger,
350
+ cache_store: cache_store,
351
+ instrumentation: instrumentation,
352
+ faraday_config: faraday_config,
353
+ faraday_options: faraday_options
354
+ )
339
355
  end
340
356
  end
341
357
 
342
358
  def response_with_page_information
343
- RestfulResource::Response.new(body: [{ id: 1, name: 'Golf'}, { id: 2, name: 'Polo' }].to_json,
344
- headers: { links: '<http://api.carwow.co.uk/makes/Volkswagen/models.json?page=6>;rel="last",<http://api.carwow.co.uk/makes/Volkswagen/models.json?page=2>;rel="next"'})
359
+ RestfulResource::Response.new(body: [{ id: 1, name: 'Golf' }, { id: 2, name: 'Polo' }].to_json,
360
+ headers: { links: '<http://api.carwow.co.uk/makes/Volkswagen/models.json?page=6>;rel="last",<http://api.carwow.co.uk/makes/Volkswagen/models.json?page=2>;rel="next"' }
361
+ )
345
362
  end
346
363
  end
@@ -2,21 +2,19 @@ require_relative '../spec_helper'
2
2
 
3
3
  describe RestfulResource::HttpClient do
4
4
  def find_middleware(adapter, name)
5
- adapter.builder.handlers.find {|m| m.name == name }
6
-
7
- rescue
8
- raise "Could not find Faraday middleware: #{name}"
5
+ adapter.builder.handlers.find { |m| m.name == name }
6
+ rescue StandardError
7
+ raise "Could not find Faraday middleware: #{name}"
9
8
  end
10
9
 
11
10
  def find_middleware_args(adapter, name)
12
- find_middleware(adapter, name).instance_variable_get("@args").first
13
-
14
- rescue
15
- raise "Could not find args for Faraday middleware: #{name}"
11
+ find_middleware(adapter, name).instance_variable_get('@args').first
12
+ rescue StandardError
13
+ raise "Could not find args for Faraday middleware: #{name}"
16
14
  end
17
15
 
18
16
  describe 'Configuration' do
19
- let(:connection) { described_class.new.instance_variable_get("@connection") }
17
+ let(:connection) { described_class.new.instance_variable_get('@connection') }
20
18
  let(:middleware) { connection.builder.handlers }
21
19
 
22
20
  describe 'Builder configuration' do
@@ -48,7 +46,7 @@ describe RestfulResource::HttpClient do
48
46
  end
49
47
 
50
48
  context 'with an api_name' do
51
- let(:connection) { described_class.new(instrumentation: { api_name: 'my_api_name'}).instance_variable_get("@connection") }
49
+ let(:connection) { described_class.new(instrumentation: { api_name: 'my_api_name' }).instance_variable_get('@connection') }
52
50
 
53
51
  it 'uses default instrumenter with the api_name' do
54
52
  expect(find_middleware_args(connection, 'FaradayMiddleware::Instrumentation')).to include(name: 'http.my_api_name')
@@ -56,7 +54,7 @@ describe RestfulResource::HttpClient do
56
54
  end
57
55
 
58
56
  context 'with a custom instrumentation key' do
59
- let(:connection) { described_class.new(instrumentation: { request_instrument_name: 'foo.bar'}).instance_variable_get("@connection") }
57
+ let(:connection) { described_class.new(instrumentation: { request_instrument_name: 'foo.bar' }).instance_variable_get('@connection') }
60
58
 
61
59
  it 'uses default instrumenter with the custom key' do
62
60
  expect(find_middleware_args(connection, 'FaradayMiddleware::Instrumentation')).to include(name: 'foo.bar')
@@ -66,7 +64,9 @@ describe RestfulResource::HttpClient do
66
64
  context 'with a given Metrics class' do
67
65
  class FakeMetrics
68
66
  def count(name, value); end
67
+
69
68
  def sample(name, value); end
69
+
70
70
  def measure(name, value); end
71
71
  end
72
72
 
@@ -78,7 +78,7 @@ describe RestfulResource::HttpClient do
78
78
  end
79
79
 
80
80
  it 'initializes the Instrumentation' do
81
- described_class.new(instrumentation: { app_name: 'rails', api_name: 'api', metric_class: FakeMetrics})
81
+ described_class.new(instrumentation: { app_name: 'rails', api_name: 'api', metric_class: FakeMetrics })
82
82
 
83
83
  expect(RestfulResource::Instrumentation).to have_received(:new)
84
84
  .with(app_name: 'rails',
@@ -86,11 +86,12 @@ describe RestfulResource::HttpClient do
86
86
  request_instrument_name: 'http.api',
87
87
  cache_instrument_name: 'http_cache.api',
88
88
  server_cache_instrument_name: 'cdn_metrics.api',
89
- metric_class: FakeMetrics)
89
+ metric_class: FakeMetrics
90
+ )
90
91
  end
91
92
 
92
93
  it 'subscribes to the notifications' do
93
- described_class.new(instrumentation: { app_name: 'rails', api_name: 'api', metric_class: FakeMetrics})
94
+ described_class.new(instrumentation: { app_name: 'rails', api_name: 'api', metric_class: FakeMetrics })
94
95
 
95
96
  expect(mock_instrumention).to have_received(:subscribe_to_notifications)
96
97
  end
@@ -98,7 +99,7 @@ describe RestfulResource::HttpClient do
98
99
  end
99
100
 
100
101
  describe 'when provided a logger' do
101
- let(:connection) { described_class.new(logger: logger).instance_variable_get("@connection") }
102
+ let(:connection) { described_class.new(logger: logger).instance_variable_get('@connection') }
102
103
  let(:logger) { Logger.new('/dev/null') }
103
104
 
104
105
  it 'uses the logger middleware' do
@@ -111,7 +112,7 @@ describe RestfulResource::HttpClient do
111
112
  end
112
113
 
113
114
  describe 'when provided a cache store' do
114
- let(:connection) { described_class.new(cache_store: 'redis').instance_variable_get("@connection") }
115
+ let(:connection) { described_class.new(cache_store: 'redis').instance_variable_get('@connection') }
115
116
 
116
117
  it 'uses the cache_store middleware' do
117
118
  expect(middleware).to include Faraday::HttpCache
@@ -122,7 +123,7 @@ describe RestfulResource::HttpClient do
122
123
  end
123
124
 
124
125
  context 'and an api_name is provided' do
125
- let(:connection) { described_class.new(cache_store: 'redis', instrumentation: { api_name: 'my_api_name'}).instance_variable_get("@connection") }
126
+ let(:connection) { described_class.new(cache_store: 'redis', instrumentation: { api_name: 'my_api_name' }).instance_variable_get('@connection') }
126
127
 
127
128
  it 'passes the instrumenter and the api_name' do
128
129
  expect(find_middleware_args(connection, 'Faraday::HttpCache')).to include(instrumenter: ActiveSupport::Notifications, instrument_name: 'http_cache.my_api_name')
@@ -130,7 +131,7 @@ describe RestfulResource::HttpClient do
130
131
  end
131
132
 
132
133
  context 'and a custom instrument name is provided' do
133
- let(:connection) { described_class.new(cache_store: 'redis', instrumentation: { cache_instrument_name: 'foo.bar'}).instance_variable_get("@connection") }
134
+ let(:connection) { described_class.new(cache_store: 'redis', instrumentation: { cache_instrument_name: 'foo.bar' }).instance_variable_get('@connection') }
134
135
 
135
136
  it 'passes the instrumenter to the http cache middleware' do
136
137
  expect(find_middleware_args(connection, 'Faraday::HttpCache')).to include(instrumenter: ActiveSupport::Notifications, instrument_name: 'foo.bar')
@@ -142,7 +143,7 @@ describe RestfulResource::HttpClient do
142
143
  let(:faraday_config_block) do
143
144
  proc { |conn| @block_arg = conn }
144
145
  end
145
- let(:connection) { described_class.new(faraday_config: faraday_config_block).instance_variable_get("@connection") }
146
+ let(:connection) { described_class.new(faraday_config: faraday_config_block).instance_variable_get('@connection') }
146
147
 
147
148
  it 'passes faraday connection instance and calls it' do
148
149
  connection