gds-api-adapters 36.4.1 → 37.0.0
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 +7 -12
- data/Rakefile +5 -0
- data/lib/gds_api/asset_manager.rb +3 -3
- data/lib/gds_api/config.rb +58 -11
- data/lib/gds_api/gov_uk_delivery.rb +1 -1
- data/lib/gds_api/json_client.rb +0 -20
- data/lib/gds_api/part_methods.rb +11 -8
- data/lib/gds_api/publisher.rb +5 -4
- data/lib/gds_api/publishing_api_v2.rb +18 -1
- data/lib/gds_api/response.rb +7 -3
- data/lib/gds_api/test_helpers/rummager.rb +12 -0
- data/lib/gds_api/version.rb +1 -1
- data/test/asset_manager_test.rb +6 -14
- data/test/content_api_test.rb +105 -30
- data/test/content_store_test.rb +10 -22
- data/test/gov_uk_delivery_test.rb +5 -3
- data/test/json_client_test.rb +188 -173
- data/test/licence_application_api_test.rb +15 -7
- data/test/list_response_test.rb +23 -8
- data/test/local_links_manager_api_test.rb +14 -12
- data/test/mapit_test.rb +8 -4
- data/test/need_api_test.rb +35 -14
- data/test/organisations_api_test.rb +11 -6
- data/test/panopticon_test.rb +13 -5
- data/test/publisher_api_test.rb +4 -4
- data/test/publishing_api_v2/get_expanded_links_test.rb +3 -3
- data/test/publishing_api_v2/get_links_test.rb +8 -4
- data/test/publishing_api_v2_test.rb +47 -37
- data/test/response_test.rb +49 -20
- data/test/router_test.rb +24 -20
- data/test/rummager_helpers_test.rb +1 -1
- data/test/worldwide_api_test.rb +18 -7
- metadata +17 -3
data/test/content_store_test.rb
CHANGED
@@ -20,48 +20,36 @@ describe GdsApi::ContentStore do
|
|
20
20
|
assert_equal base_path, response["base_path"]
|
21
21
|
end
|
22
22
|
|
23
|
-
it "
|
23
|
+
it "raises if the item doesn't exist" do
|
24
24
|
content_store_does_not_have_item("/non-existent")
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
it "raises if the item doesn't exist and `always_raise_for_not_found` enabled" do
|
30
|
-
GdsApi.configure do |config|
|
31
|
-
config.always_raise_for_not_found = true
|
26
|
+
assert_raises(GdsApi::HTTPNotFound) do
|
27
|
+
@api.content_item("/non-existent")
|
32
28
|
end
|
29
|
+
end
|
33
30
|
|
31
|
+
it "raises if the item doesn't exist" do
|
34
32
|
content_store_does_not_have_item("/non-existent")
|
35
33
|
|
36
34
|
assert_raises GdsApi::HTTPNotFound do
|
37
35
|
@api.content_item("/non-existent")
|
38
36
|
end
|
39
|
-
|
40
|
-
GdsApi.configure do |config|
|
41
|
-
config.always_raise_for_not_found = false
|
42
|
-
end
|
43
37
|
end
|
44
38
|
|
45
|
-
it "
|
39
|
+
it "raises if the item is gone" do
|
46
40
|
content_store_has_gone_item("/it-is-gone")
|
47
41
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
it "raises if the item is gone and `always_raise_for_not_found` enabled" do
|
52
|
-
GdsApi.configure do |config|
|
53
|
-
config.always_raise_for_not_found = true
|
42
|
+
assert_raises(GdsApi::HTTPGone) do
|
43
|
+
@api.content_item("/it-is-gone")
|
54
44
|
end
|
45
|
+
end
|
55
46
|
|
47
|
+
it "raises if the item is gone" do
|
56
48
|
content_store_has_gone_item("/it-is-gone")
|
57
49
|
|
58
50
|
assert_raises GdsApi::HTTPGone do
|
59
51
|
@api.content_item("/it-is-gone")
|
60
52
|
end
|
61
|
-
|
62
|
-
GdsApi.configure do |config|
|
63
|
-
config.always_raise_for_not_found = false
|
64
|
-
end
|
65
53
|
end
|
66
54
|
end
|
67
55
|
|
@@ -36,18 +36,20 @@ describe GdsApi::GovUkDelivery do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
it "can get a subscription URL" do
|
39
|
-
expected_payload = { feed_url: 'http://example.com/feed'}
|
39
|
+
expected_payload = { feed_url: 'http://example.com/feed' }
|
40
40
|
stub = stub_gov_uk_delivery_get_request('list-url', expected_payload).to_return(created_response_json_hash({list_url: 'thing'}))
|
41
41
|
|
42
42
|
assert @api.signup_url('http://example.com/feed')
|
43
43
|
assert_requested stub
|
44
44
|
end
|
45
45
|
|
46
|
-
it "
|
46
|
+
it "raises if the API 404s" do
|
47
47
|
expected_payload = { feed_url: 'http://example.com/feed'}
|
48
48
|
stub = stub_gov_uk_delivery_get_request('list-url', expected_payload).to_return(not_found_hash)
|
49
49
|
|
50
|
-
|
50
|
+
assert_raises(GdsApi::HTTPNotFound) do
|
51
|
+
@api.signup_url('http://example.com/feed')
|
52
|
+
end
|
51
53
|
end
|
52
54
|
|
53
55
|
private
|
data/test/json_client_test.rb
CHANGED
@@ -28,6 +28,21 @@ class JsonClientTest < MiniTest::Spec
|
|
28
28
|
{}
|
29
29
|
end
|
30
30
|
|
31
|
+
# TODO: When we remove `GdsApi.config.hash_response_for_requests`, this helper
|
32
|
+
# method no longer makes sense and it should be deleted.
|
33
|
+
def with_hash_response_for_requests_disabled
|
34
|
+
@old_hash_response_for_requests = GdsApi.config.hash_response_for_requests
|
35
|
+
GdsApi.configure do |config|
|
36
|
+
config.hash_response_for_requests = false
|
37
|
+
end
|
38
|
+
|
39
|
+
yield
|
40
|
+
|
41
|
+
GdsApi.configure do |config|
|
42
|
+
config.hash_response_for_requests = @old_hash_response_for_requests
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
31
46
|
def test_long_get_requests_timeout
|
32
47
|
url = "http://www.example.com/timeout.json"
|
33
48
|
stub_request(:get, url).to_timeout
|
@@ -79,14 +94,14 @@ class JsonClientTest < MiniTest::Spec
|
|
79
94
|
|
80
95
|
def test_should_fetch_and_parse_json_into_response
|
81
96
|
url = "http://some.endpoint/some.json"
|
82
|
-
stub_request(:get, url).to_return(:
|
97
|
+
stub_request(:get, url).to_return(body: "{}", status: 200)
|
83
98
|
assert_equal GdsApi::Response, @client.get_json(url).class
|
84
99
|
end
|
85
100
|
|
86
101
|
def test_should_cache_multiple_requests_to_same_url_across_instances
|
87
102
|
url = "http://some.endpoint/some.json"
|
88
103
|
result = {"foo" => "bar"}
|
89
|
-
stub_request(:get, url).to_return(:
|
104
|
+
stub_request(:get, url).to_return(body: JSON.dump(result), status: 200)
|
90
105
|
response_a = GdsApi::JsonClient.new.get_json(url)
|
91
106
|
response_b = GdsApi::JsonClient.new.get_json(url)
|
92
107
|
assert_equal response_a.to_hash, response_b.to_hash
|
@@ -101,7 +116,7 @@ class JsonClientTest < MiniTest::Spec
|
|
101
116
|
url = "http://some.endpoint/"
|
102
117
|
result = {"foo" => "bar"}
|
103
118
|
stub_request(:get, %r{\A#{url}}).to_return do |request|
|
104
|
-
{:
|
119
|
+
{ body: { "url" => request.uri }.to_json, status: 200 }
|
105
120
|
end
|
106
121
|
|
107
122
|
response_a = GdsApi::JsonClient.new(:cache_size => 5).get_json("#{url}/first.json")
|
@@ -120,7 +135,7 @@ class JsonClientTest < MiniTest::Spec
|
|
120
135
|
def test_should_cache_requests_for_15_mins_by_default
|
121
136
|
url = "http://some.endpoint/some.json"
|
122
137
|
result = {"foo" => "bar"}
|
123
|
-
stub_request(:get, url).to_return(:
|
138
|
+
stub_request(:get, url).to_return(body: JSON.dump(result), status: 200)
|
124
139
|
response_a = GdsApi::JsonClient.new.get_json(url)
|
125
140
|
response_b = GdsApi::JsonClient.new.get_json(url)
|
126
141
|
|
@@ -149,7 +164,7 @@ class JsonClientTest < MiniTest::Spec
|
|
149
164
|
|
150
165
|
url = "http://some.endpoint/some.json"
|
151
166
|
result = {"foo" => "bar"}
|
152
|
-
stub_request(:get, url).to_return(:
|
167
|
+
stub_request(:get, url).to_return(body: JSON.dump(result), status: 200)
|
153
168
|
response_a = GdsApi::JsonClient.new(:cache_ttl => 5 * 60).get_json(url)
|
154
169
|
response_b = GdsApi::JsonClient.new.get_json(url)
|
155
170
|
|
@@ -174,7 +189,7 @@ class JsonClientTest < MiniTest::Spec
|
|
174
189
|
def test_should_allow_disabling_caching
|
175
190
|
url = "http://some.endpoint/some.json"
|
176
191
|
result = {"foo" => "bar"}
|
177
|
-
stub_request(:get, url).to_return(:
|
192
|
+
stub_request(:get, url).to_return(body: JSON.dump(result), status: 200)
|
178
193
|
|
179
194
|
client = GdsApi::JsonClient.new(disable_cache: true)
|
180
195
|
|
@@ -192,9 +207,9 @@ class JsonClientTest < MiniTest::Spec
|
|
192
207
|
url = "http://some.endpoint/some.json"
|
193
208
|
result = {"foo" => "bar"}
|
194
209
|
stub_request(:get, url).to_return(
|
195
|
-
:
|
196
|
-
:
|
197
|
-
:
|
210
|
+
body: JSON.dump(result),
|
211
|
+
status: 200,
|
212
|
+
headers: { "Expires" => (Time.now + 7 * 60).utc.httpdate }
|
198
213
|
)
|
199
214
|
|
200
215
|
response_a = GdsApi::JsonClient.new.get_json(url)
|
@@ -218,9 +233,9 @@ class JsonClientTest < MiniTest::Spec
|
|
218
233
|
url = "http://some.endpoint/max_age.json"
|
219
234
|
result = {"foo" => "bar"}
|
220
235
|
stub_request(:get, url).to_return(
|
221
|
-
:
|
222
|
-
:
|
223
|
-
:
|
236
|
+
body: JSON.dump(result),
|
237
|
+
status: 200,
|
238
|
+
headers: { "Cache-Control" => "max-age=420, public" } # 7 minutes
|
224
239
|
)
|
225
240
|
|
226
241
|
response_a = GdsApi::JsonClient.new.get_json(url)
|
@@ -244,9 +259,9 @@ class JsonClientTest < MiniTest::Spec
|
|
244
259
|
url = "http://some.endpoint/no_cache.json"
|
245
260
|
result = {"foo" => "bar"}
|
246
261
|
stub_request(:get, url).to_return(
|
247
|
-
:
|
248
|
-
:
|
249
|
-
:
|
262
|
+
body: JSON.dump(result),
|
263
|
+
status: 200,
|
264
|
+
headers: { "Cache-Control" => "no-cache, public" }
|
250
265
|
)
|
251
266
|
|
252
267
|
response_a = GdsApi::JsonClient.new.get_json(url)
|
@@ -263,9 +278,9 @@ class JsonClientTest < MiniTest::Spec
|
|
263
278
|
url = "http://some.endpoint/private.json"
|
264
279
|
result = {"foo" => "bar"}
|
265
280
|
stub_request(:get, url).to_return(
|
266
|
-
:
|
267
|
-
:
|
268
|
-
:
|
281
|
+
body: JSON.dump(result),
|
282
|
+
status: 200,
|
283
|
+
headers: { "Cache-Control" => "max-age=600, private" }
|
269
284
|
)
|
270
285
|
|
271
286
|
response_a = GdsApi::JsonClient.new.get_json(url)
|
@@ -282,9 +297,9 @@ class JsonClientTest < MiniTest::Spec
|
|
282
297
|
url = "http://some.endpoint/private.json"
|
283
298
|
result = {"foo" => "bar"}
|
284
299
|
stub_request(:get, url).to_return(
|
285
|
-
:
|
286
|
-
:
|
287
|
-
:
|
300
|
+
body: JSON.dump(result),
|
301
|
+
status: 200,
|
302
|
+
headers: { "Cache-Control" => "max-age=600, no-store" }
|
288
303
|
)
|
289
304
|
|
290
305
|
response_a = GdsApi::JsonClient.new.get_json(url)
|
@@ -301,9 +316,9 @@ class JsonClientTest < MiniTest::Spec
|
|
301
316
|
url = "http://some.endpoint/no_cache_and_max_age.json"
|
302
317
|
result = {"foo" => "bar"}
|
303
318
|
stub_request(:get, url).to_return(
|
304
|
-
:
|
305
|
-
:
|
306
|
-
:
|
319
|
+
body: JSON.dump(result),
|
320
|
+
status: 200,
|
321
|
+
headers: { "Cache-Control" => "max-age=600, no-cache, public" }
|
307
322
|
)
|
308
323
|
|
309
324
|
response_a = GdsApi::JsonClient.new.get_json(url)
|
@@ -320,9 +335,9 @@ class JsonClientTest < MiniTest::Spec
|
|
320
335
|
url = "http://some.endpoint/url.json"
|
321
336
|
result = {"foo" => "bar"}
|
322
337
|
stub_request(:get, url).to_return(
|
323
|
-
:
|
324
|
-
:
|
325
|
-
:
|
338
|
+
body: JSON.dump(result),
|
339
|
+
status: 200,
|
340
|
+
headers: {
|
326
341
|
"Cache-Control" => "no-cache",
|
327
342
|
"Expires" => (Time.now + 7 * 60).utc.httpdate
|
328
343
|
}
|
@@ -342,9 +357,9 @@ class JsonClientTest < MiniTest::Spec
|
|
342
357
|
url = "http://some.endpoint/url.json"
|
343
358
|
result = {"foo" => "bar"}
|
344
359
|
stub_request(:get, url).to_return(
|
345
|
-
:
|
346
|
-
:
|
347
|
-
:
|
360
|
+
body: JSON.dump(result),
|
361
|
+
status: 200,
|
362
|
+
headers: {
|
348
363
|
"Cache-Control" => "foo, bar, baz",
|
349
364
|
"Expires" => (Time.now + 7 * 60).utc.httpdate
|
350
365
|
}
|
@@ -362,7 +377,7 @@ class JsonClientTest < MiniTest::Spec
|
|
362
377
|
|
363
378
|
def test_get_bang_should_raise_http_not_found_if_404_returned_from_endpoint
|
364
379
|
url = "http://some.endpoint/some.json"
|
365
|
-
stub_request(:get, url).to_return(:
|
380
|
+
stub_request(:get, url).to_return(body: "{}", status: 404)
|
366
381
|
assert_raises GdsApi::HTTPNotFound do
|
367
382
|
@client.get_json!(url)
|
368
383
|
end
|
@@ -370,7 +385,7 @@ class JsonClientTest < MiniTest::Spec
|
|
370
385
|
|
371
386
|
def test_get_bang_should_raise_http_gone_if_410_returned_from_endpoint
|
372
387
|
url = "http://some.endpoint/some.json"
|
373
|
-
stub_request(:get, url).to_return(:
|
388
|
+
stub_request(:get, url).to_return(body: "{}", status: 410)
|
374
389
|
assert_raises GdsApi::HTTPGone do
|
375
390
|
@client.get_json!(url)
|
376
391
|
end
|
@@ -378,19 +393,22 @@ class JsonClientTest < MiniTest::Spec
|
|
378
393
|
|
379
394
|
def test_get_bang_should_raise_http_forbidden_if_403_returned_from_endpoint
|
380
395
|
url = "http://some.endpoint/some.json"
|
381
|
-
stub_request(:get, url).to_return(:
|
396
|
+
stub_request(:get, url).to_return(body: "{}", status: 403)
|
382
397
|
assert_raises GdsApi::HTTPForbidden do
|
383
398
|
@client.get_json!(url)
|
384
399
|
end
|
385
400
|
end
|
386
401
|
|
402
|
+
# TODO: always_raise_for_not_found will be gone by December 1st, 2016. We will
|
403
|
+
# need to remove it from this test.
|
387
404
|
def test_get_should_be_nil_if_404_returned_from_endpoint_and_always_raise_for_not_found_is_disabled
|
388
405
|
@old_always_raise = GdsApi.config.always_raise_for_not_found
|
389
406
|
GdsApi.configure do |config|
|
390
407
|
config.always_raise_for_not_found = false
|
391
408
|
end
|
392
409
|
url = "http://some.endpoint/some.json"
|
393
|
-
stub_request(:get, url).to_return(:
|
410
|
+
stub_request(:get, url).to_return(body: "{}", status: 404)
|
411
|
+
|
394
412
|
assert_nil @client.get_json(url)
|
395
413
|
ensure
|
396
414
|
GdsApi.configure do |config|
|
@@ -398,13 +416,15 @@ class JsonClientTest < MiniTest::Spec
|
|
398
416
|
end
|
399
417
|
end
|
400
418
|
|
419
|
+
# TODO: always_raise_for_not_found will be gone by December 1st, 2016. We will
|
420
|
+
# need to remove it from this test.
|
401
421
|
def test_get_should_be_nil_if_410_returned_from_endpoint_and_always_raise_for_not_found_is_disabled
|
402
422
|
@old_always_raise = GdsApi.config.always_raise_for_not_found
|
403
423
|
GdsApi.configure do |config|
|
404
424
|
config.always_raise_for_not_found = false
|
405
425
|
end
|
406
426
|
url = "http://some.endpoint/some.json"
|
407
|
-
stub_request(:get, url).to_return(:
|
427
|
+
stub_request(:get, url).to_return(body: "{}", status: 410)
|
408
428
|
assert_nil @client.get_json(url)
|
409
429
|
ensure
|
410
430
|
GdsApi.configure do |config|
|
@@ -412,45 +432,31 @@ class JsonClientTest < MiniTest::Spec
|
|
412
432
|
end
|
413
433
|
end
|
414
434
|
|
415
|
-
def
|
416
|
-
@old_always_raise = GdsApi.config.always_raise_for_not_found
|
417
|
-
GdsApi.configure do |config|
|
418
|
-
config.always_raise_for_not_found = true
|
419
|
-
end
|
435
|
+
def test_get_should_raise_if_404_returned_from_endpoint
|
420
436
|
url = "http://some.endpoint/some.json"
|
421
|
-
stub_request(:get, url).to_return(:
|
437
|
+
stub_request(:get, url).to_return(body: "{}", status: 404)
|
422
438
|
assert_raises GdsApi::HTTPNotFound do
|
423
439
|
@client.get_json(url)
|
424
440
|
end
|
425
|
-
ensure
|
426
|
-
GdsApi.configure do |config|
|
427
|
-
config.always_raise_for_not_found = @old_always_raise
|
428
|
-
end
|
429
441
|
end
|
430
442
|
|
431
|
-
def
|
432
|
-
@old_always_raise = GdsApi.config.always_raise_for_not_found
|
433
|
-
GdsApi.configure do |config|
|
434
|
-
config.always_raise_for_not_found = true
|
435
|
-
end
|
443
|
+
def test_get_should_raise_if_410_returned_from_endpoint
|
436
444
|
url = "http://some.endpoint/some.json"
|
437
|
-
stub_request(:get, url).to_return(:
|
445
|
+
stub_request(:get, url).to_return(body: "{}", status: 410)
|
438
446
|
assert_raises GdsApi::HTTPGone do
|
439
447
|
@client.get_json(url)
|
440
448
|
end
|
441
|
-
ensure
|
442
|
-
GdsApi.configure do |config|
|
443
|
-
config.always_raise_for_not_found = @old_always_raise
|
444
|
-
end
|
445
449
|
end
|
446
450
|
|
451
|
+
# TODO: always_raise_for_not_found will be gone by December 1st, 2016. We will
|
452
|
+
# need to remove it from this test.
|
447
453
|
def test_get_raw_should_be_nil_if_404_returned_from_endpoint_and_always_raise_for_not_found_is_disabled
|
448
454
|
@old_always_raise = GdsApi.config.always_raise_for_not_found
|
449
455
|
GdsApi.configure do |config|
|
450
456
|
config.always_raise_for_not_found = false
|
451
457
|
end
|
452
458
|
url = "http://some.endpoint/some.json"
|
453
|
-
stub_request(:get, url).to_return(:
|
459
|
+
stub_request(:get, url).to_return(body: "{}", status: 404)
|
454
460
|
assert_nil @client.get_raw(url)
|
455
461
|
ensure
|
456
462
|
GdsApi.configure do |config|
|
@@ -458,13 +464,15 @@ class JsonClientTest < MiniTest::Spec
|
|
458
464
|
end
|
459
465
|
end
|
460
466
|
|
467
|
+
# TODO: always_raise_for_not_found will be gone by December 1st, 2016. We will
|
468
|
+
# need to remove it from this test.
|
461
469
|
def test_get_raw_should_be_nil_if_410_returned_from_endpoint_and_always_raise_for_not_found_is_disabled
|
462
470
|
@old_always_raise = GdsApi.config.always_raise_for_not_found
|
463
471
|
GdsApi.configure do |config|
|
464
472
|
config.always_raise_for_not_found = false
|
465
473
|
end
|
466
474
|
url = "http://some.endpoint/some.json"
|
467
|
-
stub_request(:get, url).to_return(:
|
475
|
+
stub_request(:get, url).to_return(body: "{}", status: 410)
|
468
476
|
assert_nil @client.get_raw(url)
|
469
477
|
ensure
|
470
478
|
GdsApi.configure do |config|
|
@@ -472,41 +480,25 @@ class JsonClientTest < MiniTest::Spec
|
|
472
480
|
end
|
473
481
|
end
|
474
482
|
|
475
|
-
def
|
476
|
-
@old_always_raise = GdsApi.config.always_raise_for_not_found
|
477
|
-
GdsApi.configure do |config|
|
478
|
-
config.always_raise_for_not_found = true
|
479
|
-
end
|
483
|
+
def test_get_raw_should_raise_if_404_returned_from_endpoint
|
480
484
|
url = "http://some.endpoint/some.json"
|
481
|
-
stub_request(:get, url).to_return(:
|
485
|
+
stub_request(:get, url).to_return(body: "{}", status: 404)
|
482
486
|
assert_raises GdsApi::HTTPNotFound do
|
483
487
|
@client.get_raw(url)
|
484
488
|
end
|
485
|
-
ensure
|
486
|
-
GdsApi.configure do |config|
|
487
|
-
config.always_raise_for_not_found = @old_always_raise
|
488
|
-
end
|
489
489
|
end
|
490
490
|
|
491
|
-
def
|
492
|
-
@old_always_raise = GdsApi.config.always_raise_for_not_found
|
493
|
-
GdsApi.configure do |config|
|
494
|
-
config.always_raise_for_not_found = true
|
495
|
-
end
|
491
|
+
def test_get_raw_should_be_nil_if_410_returned_from_endpoint
|
496
492
|
url = "http://some.endpoint/some.json"
|
497
|
-
stub_request(:get, url).to_return(:
|
493
|
+
stub_request(:get, url).to_return(body: "{}", status: 410)
|
498
494
|
assert_raises GdsApi::HTTPGone do
|
499
495
|
@client.get_raw(url)
|
500
496
|
end
|
501
|
-
ensure
|
502
|
-
GdsApi.configure do |config|
|
503
|
-
config.always_raise_for_not_found = @old_always_raise
|
504
|
-
end
|
505
497
|
end
|
506
498
|
|
507
499
|
def test_get_should_raise_error_if_non_404_non_410_error_code_returned_from_endpoint
|
508
500
|
url = "http://some.endpoint/some.json"
|
509
|
-
stub_request(:get, url).to_return(:
|
501
|
+
stub_request(:get, url).to_return(body: "{}", status: 500)
|
510
502
|
assert_raises GdsApi::HTTPServerError do
|
511
503
|
@client.get_json(url)
|
512
504
|
end
|
@@ -514,7 +506,7 @@ class JsonClientTest < MiniTest::Spec
|
|
514
506
|
|
515
507
|
def test_get_should_raise_conflict_for_409
|
516
508
|
url = "http://some.endpoint/some.json"
|
517
|
-
stub_request(:delete, url).to_return(:
|
509
|
+
stub_request(:delete, url).to_return(body: "{}", status: 409)
|
518
510
|
assert_raises GdsApi::HTTPConflict do
|
519
511
|
@client.delete_json!(url)
|
520
512
|
end
|
@@ -524,60 +516,60 @@ class JsonClientTest < MiniTest::Spec
|
|
524
516
|
url = "http://some.endpoint/some.json"
|
525
517
|
new_url = "http://some.endpoint/other.json"
|
526
518
|
stub_request(:get, url).to_return(
|
527
|
-
:
|
528
|
-
:
|
529
|
-
:
|
519
|
+
body: "",
|
520
|
+
status: 301,
|
521
|
+
headers: { "Location" => new_url }
|
530
522
|
)
|
531
|
-
stub_request(:get, new_url).to_return(:
|
523
|
+
stub_request(:get, new_url).to_return(body: '{"a": 1}', status: 200)
|
532
524
|
result = @client.get_json(url)
|
533
|
-
assert_equal 1, result
|
525
|
+
assert_equal 1, result['a']
|
534
526
|
end
|
535
527
|
|
536
528
|
def test_get_should_follow_found_redirect
|
537
529
|
url = "http://some.endpoint/some.json"
|
538
530
|
new_url = "http://some.endpoint/other.json"
|
539
531
|
stub_request(:get, url).to_return(
|
540
|
-
:
|
541
|
-
:
|
542
|
-
:
|
532
|
+
body: "",
|
533
|
+
status: 302,
|
534
|
+
headers: { "Location" => new_url }
|
543
535
|
)
|
544
|
-
stub_request(:get, new_url).to_return(:
|
536
|
+
stub_request(:get, new_url).to_return(body: '{"a": 1}', status: 200)
|
545
537
|
result = @client.get_json(url)
|
546
|
-
assert_equal 1, result
|
538
|
+
assert_equal 1, result['a']
|
547
539
|
end
|
548
540
|
|
549
541
|
def test_get_should_follow_see_other
|
550
542
|
url = "http://some.endpoint/some.json"
|
551
543
|
new_url = "http://some.endpoint/other.json"
|
552
544
|
stub_request(:get, url).to_return(
|
553
|
-
:
|
554
|
-
:
|
555
|
-
:
|
545
|
+
body: "",
|
546
|
+
status: 303,
|
547
|
+
headers: { "Location" => new_url }
|
556
548
|
)
|
557
|
-
stub_request(:get, new_url).to_return(:
|
549
|
+
stub_request(:get, new_url).to_return(body: '{"a": 1}', status: 200)
|
558
550
|
result = @client.get_json(url)
|
559
|
-
assert_equal 1, result
|
551
|
+
assert_equal 1, result['a']
|
560
552
|
end
|
561
553
|
|
562
554
|
def test_get_should_follow_temporary_redirect
|
563
555
|
url = "http://some.endpoint/some.json"
|
564
556
|
new_url = "http://some.endpoint/other.json"
|
565
557
|
stub_request(:get, url).to_return(
|
566
|
-
:
|
567
|
-
:
|
568
|
-
:
|
558
|
+
body: "",
|
559
|
+
status: 307,
|
560
|
+
headers: { "Location" => new_url }
|
569
561
|
)
|
570
|
-
stub_request(:get, new_url).to_return(:
|
562
|
+
stub_request(:get, new_url).to_return(body: '{"a": 1}', status: 200)
|
571
563
|
result = @client.get_json(url)
|
572
|
-
assert_equal 1, result
|
564
|
+
assert_equal 1, result['a']
|
573
565
|
end
|
574
566
|
|
575
567
|
def test_should_handle_infinite_redirects
|
576
568
|
url = "http://some.endpoint/some.json"
|
577
569
|
redirect = {
|
578
|
-
:
|
579
|
-
:
|
580
|
-
:
|
570
|
+
body: "",
|
571
|
+
status: 302,
|
572
|
+
headers: { "Location" => url }
|
581
573
|
}
|
582
574
|
|
583
575
|
# Theoretically, we could set this up to mock out any number of requests
|
@@ -597,14 +589,14 @@ class JsonClientTest < MiniTest::Spec
|
|
597
589
|
second_url = "http://some.endpoint/some-other.json"
|
598
590
|
|
599
591
|
first_redirect = {
|
600
|
-
:
|
601
|
-
:
|
602
|
-
:
|
592
|
+
body: "",
|
593
|
+
status: 302,
|
594
|
+
headers: { "Location" => second_url }
|
603
595
|
}
|
604
596
|
second_redirect = {
|
605
|
-
:
|
606
|
-
:
|
607
|
-
:
|
597
|
+
body: "",
|
598
|
+
status: 302,
|
599
|
+
headers: { "Location" => first_url }
|
608
600
|
}
|
609
601
|
|
610
602
|
# See the comment in the above test for an explanation of this
|
@@ -617,15 +609,17 @@ class JsonClientTest < MiniTest::Spec
|
|
617
609
|
end
|
618
610
|
end
|
619
611
|
|
620
|
-
def
|
612
|
+
def test_post_should_be_raise_if_404_returned_from_endpoint
|
621
613
|
url = "http://some.endpoint/some.json"
|
622
|
-
stub_request(:post, url).to_return(:
|
623
|
-
|
614
|
+
stub_request(:post, url).to_return(body: "{}", status: 404)
|
615
|
+
assert_raises(GdsApi::HTTPNotFound) do
|
616
|
+
@client.post_json(url, {})
|
617
|
+
end
|
624
618
|
end
|
625
619
|
|
626
620
|
def test_post_should_raise_error_if_non_404_error_code_returned_from_endpoint
|
627
621
|
url = "http://some.endpoint/some.json"
|
628
|
-
stub_request(:post, url).to_return(:
|
622
|
+
stub_request(:post, url).to_return(body: "{}", status: 500)
|
629
623
|
assert_raises GdsApi::HTTPServerError do
|
630
624
|
@client.post_json(url, {})
|
631
625
|
end
|
@@ -635,95 +629,104 @@ class JsonClientTest < MiniTest::Spec
|
|
635
629
|
url = "http://some.endpoint/some.json"
|
636
630
|
new_url = "http://some.endpoint/other.json"
|
637
631
|
stub_request(:post, url).to_return(
|
638
|
-
:
|
639
|
-
:
|
640
|
-
:
|
632
|
+
body: "",
|
633
|
+
status: 302,
|
634
|
+
headers: { "Location" => new_url }
|
641
635
|
)
|
642
636
|
assert_raises GdsApi::HTTPErrorResponse do
|
643
637
|
@client.post_json(url, {})
|
644
638
|
end
|
645
639
|
end
|
646
640
|
|
647
|
-
def
|
641
|
+
def test_put_should_be_raise_if_404_returned_from_endpoint
|
648
642
|
url = "http://some.endpoint/some.json"
|
649
|
-
stub_request(:put, url).to_return(:
|
650
|
-
|
643
|
+
stub_request(:put, url).to_return(body: "{}", status: 404)
|
644
|
+
|
645
|
+
assert_raises(GdsApi::HTTPNotFound) do
|
646
|
+
@client.put_json(url, {})
|
647
|
+
end
|
651
648
|
end
|
652
649
|
|
653
650
|
def test_put_should_raise_error_if_non_404_error_code_returned_from_endpoint
|
654
651
|
url = "http://some.endpoint/some.json"
|
655
|
-
stub_request(:put, url).to_return(:
|
652
|
+
stub_request(:put, url).to_return(body: "{}", status: 500)
|
656
653
|
assert_raises GdsApi::HTTPServerError do
|
657
654
|
@client.put_json(url, {})
|
658
655
|
end
|
659
656
|
end
|
660
657
|
|
661
658
|
def empty_response
|
662
|
-
net_http_response = stub(:
|
659
|
+
net_http_response = stub(body: '{}')
|
663
660
|
GdsApi::Response.new(net_http_response)
|
664
661
|
end
|
665
662
|
|
666
663
|
def test_put_json_does_put_with_json_encoded_packet
|
667
664
|
url = "http://some.endpoint/some.json"
|
668
665
|
payload = {a: 1}
|
669
|
-
stub_request(:put, url).with(body: payload.to_json).to_return(:
|
666
|
+
stub_request(:put, url).with(body: payload.to_json).to_return(body: "{}", status: 200)
|
670
667
|
assert_equal({}, @client.put_json(url, payload).to_hash)
|
671
668
|
end
|
672
669
|
|
673
670
|
def test_does_not_encode_json_if_payload_is_nil
|
674
671
|
url = "http://some.endpoint/some.json"
|
675
|
-
stub_request(:put, url).with(body: nil).to_return(:
|
672
|
+
stub_request(:put, url).with(body: nil).to_return(body: "{}", status: 200)
|
676
673
|
assert_equal({}, @client.put_json(url, nil).to_hash)
|
677
674
|
end
|
678
675
|
|
679
676
|
def test_can_build_custom_response_object
|
680
677
|
url = "http://some.endpoint/some.json"
|
681
|
-
stub_request(:get, url).to_return(:
|
678
|
+
stub_request(:get, url).to_return(body: "Hello there!")
|
682
679
|
|
683
680
|
response = @client.get_json(url) { |http_response| http_response.body }
|
684
681
|
assert response.is_a? String
|
685
682
|
assert_equal "Hello there!", response
|
686
683
|
end
|
687
684
|
|
688
|
-
def
|
685
|
+
def test_raises_on_custom_response_404
|
689
686
|
url = "http://some.endpoint/some.json"
|
690
|
-
stub_request(:get, url).to_return(:
|
687
|
+
stub_request(:get, url).to_return(body: "", status: 404)
|
691
688
|
|
692
|
-
|
693
|
-
|
689
|
+
assert_raises(GdsApi::HTTPNotFound) do
|
690
|
+
@client.get_json(url, &:body)
|
691
|
+
end
|
694
692
|
end
|
695
693
|
|
696
694
|
def test_can_build_custom_response_object_in_bang_method
|
697
695
|
url = "http://some.endpoint/some.json"
|
698
|
-
stub_request(:get, url).to_return(:
|
696
|
+
stub_request(:get, url).to_return(body: "Hello there!")
|
699
697
|
|
700
698
|
response = @client.get_json!(url) { |http_response| http_response.body }
|
701
699
|
assert response.is_a? String
|
702
700
|
assert_equal "Hello there!", response
|
703
701
|
end
|
704
702
|
|
703
|
+
# TODO: When we remove `GdsApi.config.hash_response_for_requests`, this test
|
704
|
+
# no longer makes sense and it should be deleted.
|
705
705
|
def test_can_convert_response_to_ostruct
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
706
|
+
with_hash_response_for_requests_disabled do
|
707
|
+
url = "http://some.endpoint/some.json"
|
708
|
+
payload = { a: 1 }
|
709
|
+
stub_request(:put, url).with(body: payload.to_json).to_return(body: '{"a":1}', status: 200)
|
710
|
+
response = @client.put_json(url, payload)
|
711
|
+
assert_equal(OpenStruct.new(a: 1), response.to_ostruct)
|
712
|
+
end
|
711
713
|
end
|
712
714
|
|
713
715
|
def test_can_access_attributes_of_response_directly
|
714
716
|
url = "http://some.endpoint/some.json"
|
715
|
-
payload = {a: 1}
|
716
|
-
stub_request(:put, url).with(body: payload.to_json).to_return(:
|
717
|
+
payload = { a: 1 }
|
718
|
+
stub_request(:put, url).with(body: payload.to_json).to_return(body: '{"a":{"b":2}}', status: 200)
|
717
719
|
response = @client.put_json(url, payload)
|
718
|
-
assert_equal 2, response
|
720
|
+
assert_equal 2, response['a']['b']
|
719
721
|
end
|
720
722
|
|
721
723
|
def test_cant_access_attributes_of_response_directly_if_hash_only
|
722
724
|
url = "http://some.endpoint/some.json"
|
723
|
-
payload = {a: 1}
|
724
|
-
stub_request(:put, url).with(body: payload.to_json).to_return(:
|
725
|
+
payload = { a: 1 }
|
726
|
+
stub_request(:put, url).with(body: payload.to_json).to_return(body: '{"a":{"b":2}}', status: 200)
|
725
727
|
response = @client.put_json(url, payload)
|
726
728
|
|
729
|
+
@old_hash_response_for_requests = GdsApi.config.hash_response_for_requests
|
727
730
|
GdsApi.configure do |config|
|
728
731
|
config.hash_response_for_requests = true
|
729
732
|
end
|
@@ -733,28 +736,36 @@ class JsonClientTest < MiniTest::Spec
|
|
733
736
|
end
|
734
737
|
|
735
738
|
GdsApi.configure do |config|
|
736
|
-
config.hash_response_for_requests =
|
739
|
+
config.hash_response_for_requests = @old_hash_response_for_requests
|
737
740
|
end
|
738
741
|
end
|
739
742
|
|
743
|
+
# TODO: When we remove `GdsApi.config.hash_response_for_requests`, this test
|
744
|
+
# no longer makes sense and it should be deleted.
|
740
745
|
def test_accessing_non_existent_attribute_of_response_returns_nil
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
746
|
+
with_hash_response_for_requests_disabled do
|
747
|
+
url = "http://some.endpoint/some.json"
|
748
|
+
stub_request(:put, url).to_return(body: '{"a":1}', status: 200)
|
749
|
+
response = @client.put_json(url, {})
|
750
|
+
assert_equal nil, response.does_not_exist
|
751
|
+
end
|
745
752
|
end
|
746
753
|
|
754
|
+
# TODO: When we remove `GdsApi.config.hash_response_for_requests`, this test
|
755
|
+
# no longer makes sense and it should be deleted.
|
747
756
|
def test_response_does_not_claim_to_respond_to_methods_corresponding_to_non_existent_attributes
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
757
|
+
with_hash_response_for_requests_disabled do
|
758
|
+
# This mimics the behaviour of OpenStruct
|
759
|
+
url = "http://some.endpoint/some.json"
|
760
|
+
stub_request(:put, url).to_return(body: '{"a":1}', status: 200)
|
761
|
+
response = @client.put_json(url, {})
|
762
|
+
assert ! response.respond_to?(:does_not_exist)
|
763
|
+
end
|
753
764
|
end
|
754
765
|
|
755
766
|
def test_a_response_is_always_considered_present_and_not_blank
|
756
767
|
url = "http://some.endpoint/some.json"
|
757
|
-
stub_request(:put, url).to_return(:
|
768
|
+
stub_request(:put, url).to_return(body: '{"a":1}', status: 200)
|
758
769
|
response = @client.put_json(url, {})
|
759
770
|
assert ! response.blank?
|
760
771
|
assert response.present?
|
@@ -764,10 +775,10 @@ class JsonClientTest < MiniTest::Spec
|
|
764
775
|
client = GdsApi::JsonClient.new(basic_auth: {user: 'user', password: 'password'})
|
765
776
|
|
766
777
|
stub_request(:put, "http://user:password@some.endpoint/some.json").
|
767
|
-
to_return(:
|
778
|
+
to_return(body: '{"a":1}', status: 200)
|
768
779
|
|
769
780
|
response = client.put_json("http://some.endpoint/some.json", {})
|
770
|
-
assert_equal 1, response
|
781
|
+
assert_equal 1, response['a']
|
771
782
|
end
|
772
783
|
|
773
784
|
def test_client_can_use_bearer_token
|
@@ -776,15 +787,15 @@ class JsonClientTest < MiniTest::Spec
|
|
776
787
|
merge('Authorization' => 'Bearer SOME_BEARER_TOKEN')
|
777
788
|
|
778
789
|
stub_request(:put, "http://some.other.endpoint/some.json").
|
779
|
-
with(:
|
780
|
-
to_return(:
|
790
|
+
with(headers: expected_headers).
|
791
|
+
to_return(body: '{"a":2}', status: 200)
|
781
792
|
|
782
793
|
response = client.put_json("http://some.other.endpoint/some.json", {})
|
783
|
-
assert_equal 2, response
|
794
|
+
assert_equal 2, response['a']
|
784
795
|
end
|
785
796
|
|
786
797
|
def test_client_can_set_custom_headers_on_gets
|
787
|
-
stub_request(:get, "http://some.other.endpoint/some.json").to_return(:
|
798
|
+
stub_request(:get, "http://some.other.endpoint/some.json").to_return(status: 200)
|
788
799
|
|
789
800
|
response = GdsApi::JsonClient.new.get_json("http://some.other.endpoint/some.json",
|
790
801
|
{ "HEADER-A" => "B", "HEADER-C" => "D" })
|
@@ -796,7 +807,7 @@ class JsonClientTest < MiniTest::Spec
|
|
796
807
|
end
|
797
808
|
|
798
809
|
def test_client_can_set_custom_headers_on_posts
|
799
|
-
stub_request(:post, "http://some.other.endpoint/some.json").to_return(:
|
810
|
+
stub_request(:post, "http://some.other.endpoint/some.json").to_return(status: 200)
|
800
811
|
|
801
812
|
response = GdsApi::JsonClient.new.post_json("http://some.other.endpoint/some.json", {},
|
802
813
|
{ "HEADER-A" => "B", "HEADER-C" => "D" })
|
@@ -808,7 +819,7 @@ class JsonClientTest < MiniTest::Spec
|
|
808
819
|
end
|
809
820
|
|
810
821
|
def test_client_can_set_custom_headers_on_puts
|
811
|
-
stub_request(:put, "http://some.other.endpoint/some.json").to_return(:
|
822
|
+
stub_request(:put, "http://some.other.endpoint/some.json").to_return(status: 200)
|
812
823
|
|
813
824
|
response = GdsApi::JsonClient.new.put_json("http://some.other.endpoint/some.json", {},
|
814
825
|
{ "HEADER-A" => "B", "HEADER-C" => "D" })
|
@@ -820,7 +831,7 @@ class JsonClientTest < MiniTest::Spec
|
|
820
831
|
end
|
821
832
|
|
822
833
|
def test_client_can_set_custom_headers_on_deletes
|
823
|
-
stub_request(:delete, "http://some.other.endpoint/some.json").to_return(:
|
834
|
+
stub_request(:delete, "http://some.other.endpoint/some.json").to_return(status: 200)
|
824
835
|
|
825
836
|
response = GdsApi::JsonClient.new.delete_json("http://some.other.endpoint/some.json",
|
826
837
|
{ "HEADER-A" => "B", "HEADER-C" => "D" })
|
@@ -836,7 +847,7 @@ class JsonClientTest < MiniTest::Spec
|
|
836
847
|
GdsApi::GovukHeaders.set_header(:govuk_request_id, "12345")
|
837
848
|
GdsApi::GovukHeaders.set_header(:govuk_original_url, "http://example.com")
|
838
849
|
|
839
|
-
stub_request(:get, "http://some.other.endpoint/some.json").to_return(:
|
850
|
+
stub_request(:get, "http://some.other.endpoint/some.json").to_return(status: 200)
|
840
851
|
|
841
852
|
GdsApi::JsonClient.new.get_json("http://some.other.endpoint/some.json")
|
842
853
|
|
@@ -848,7 +859,7 @@ class JsonClientTest < MiniTest::Spec
|
|
848
859
|
|
849
860
|
def test_govuk_headers_ignored_in_requests_if_not_present
|
850
861
|
GdsApi::GovukHeaders.set_header(:x_govuk_authenticated_user, "")
|
851
|
-
stub_request(:get, "http://some.other.endpoint/some.json").to_return(:
|
862
|
+
stub_request(:get, "http://some.other.endpoint/some.json").to_return(status: 200)
|
852
863
|
|
853
864
|
GdsApi::JsonClient.new.get_json("http://some.other.endpoint/some.json")
|
854
865
|
|
@@ -858,7 +869,7 @@ class JsonClientTest < MiniTest::Spec
|
|
858
869
|
end
|
859
870
|
|
860
871
|
def test_additional_headers_passed_in_do_not_get_modified
|
861
|
-
stub_request(:get, "http://some.other.endpoint/some.json").to_return(:
|
872
|
+
stub_request(:get, "http://some.other.endpoint/some.json").to_return(status: 200)
|
862
873
|
|
863
874
|
headers = { 'HEADER-A' => 'A' }
|
864
875
|
GdsApi::JsonClient.new.get_json("http://some.other.endpoint/some.json", headers)
|
@@ -869,7 +880,11 @@ class JsonClientTest < MiniTest::Spec
|
|
869
880
|
def test_client_can_decompress_gzip_responses
|
870
881
|
url = "http://some.endpoint/some.json"
|
871
882
|
# {"test": "hello"}
|
872
|
-
stub_request(:get, url).to_return(
|
883
|
+
stub_request(:get, url).to_return(
|
884
|
+
body: "\u001F\x8B\b\u0000Q\u000F\u0019Q\u0000\u0003\xABVP*I-.Q\xB2RP\xCAH\xCD\xC9\xC9WR\xA8\u0005\u0000\xD1C\u0018\xFE\u0013\u0000\u0000\u0000",
|
885
|
+
status: 200,
|
886
|
+
headers: { 'Content-Encoding' => 'gzip' }
|
887
|
+
)
|
873
888
|
response = @client.get_json(url)
|
874
889
|
|
875
890
|
assert_equal "hello", response["test"]
|
@@ -878,11 +893,11 @@ class JsonClientTest < MiniTest::Spec
|
|
878
893
|
def test_client_can_post_multipart_responses
|
879
894
|
url = "http://some.endpoint/some.json"
|
880
895
|
stub_request(:post, url).
|
881
|
-
with(:
|
882
|
-
:
|
896
|
+
with(body: %r{------RubyFormBoundary\w+\r\nContent-Disposition: form-data; name="a"\r\n\r\n123\r\n------RubyFormBoundary\w+--\r\n},
|
897
|
+
headers: {
|
883
898
|
'Content-Type' => %r{multipart/form-data; boundary=----RubyFormBoundary\w+}
|
884
899
|
}).
|
885
|
-
to_return(:
|
900
|
+
to_return(body: '{"b": "1"}', status: 200)
|
886
901
|
|
887
902
|
response = @client.post_multipart("http://some.endpoint/some.json", {"a" => "123"})
|
888
903
|
assert_equal "1", response["b"]
|
@@ -890,7 +905,7 @@ class JsonClientTest < MiniTest::Spec
|
|
890
905
|
|
891
906
|
def test_post_multipart_should_raise_exception_if_not_found
|
892
907
|
url = "http://some.endpoint/some.json"
|
893
|
-
stub_request(:post, url).to_return(:
|
908
|
+
stub_request(:post, url).to_return(body: '', status: 404)
|
894
909
|
|
895
910
|
assert_raises GdsApi::HTTPNotFound do
|
896
911
|
@client.post_multipart("http://some.endpoint/some.json", {"a" => "123"})
|
@@ -899,7 +914,7 @@ class JsonClientTest < MiniTest::Spec
|
|
899
914
|
|
900
915
|
def test_post_multipart_should_raise_error_responses
|
901
916
|
url = "http://some.endpoint/some.json"
|
902
|
-
stub_request(:post, url).to_return(:
|
917
|
+
stub_request(:post, url).to_return(body: '', status: 500)
|
903
918
|
|
904
919
|
assert_raises GdsApi::HTTPServerError do
|
905
920
|
@client.post_multipart("http://some.endpoint/some.json", {"a" => "123"})
|
@@ -910,11 +925,11 @@ class JsonClientTest < MiniTest::Spec
|
|
910
925
|
def test_client_can_put_multipart_responses
|
911
926
|
url = "http://some.endpoint/some.json"
|
912
927
|
stub_request(:put, url).
|
913
|
-
with(:
|
914
|
-
:
|
928
|
+
with(body: %r{------RubyFormBoundary\w+\r\nContent-Disposition: form-data; name="a"\r\n\r\n123\r\n------RubyFormBoundary\w+--\r\n},
|
929
|
+
headers: {
|
915
930
|
'Content-Type' => %r{multipart/form-data; boundary=----RubyFormBoundary\w+}
|
916
931
|
}).
|
917
|
-
to_return(:
|
932
|
+
to_return(body: '{"b": "1"}', status: 200)
|
918
933
|
|
919
934
|
response = @client.put_multipart("http://some.endpoint/some.json", {"a" => "123"})
|
920
935
|
assert_equal "1", response["b"]
|
@@ -922,7 +937,7 @@ class JsonClientTest < MiniTest::Spec
|
|
922
937
|
|
923
938
|
def test_put_multipart_should_raise_exception_if_not_found
|
924
939
|
url = "http://some.endpoint/some.json"
|
925
|
-
stub_request(:put, url).to_return(:
|
940
|
+
stub_request(:put, url).to_return(body: '', status: 404)
|
926
941
|
|
927
942
|
assert_raises GdsApi::HTTPNotFound do
|
928
943
|
@client.put_multipart("http://some.endpoint/some.json", {"a" => "123"})
|
@@ -931,7 +946,7 @@ class JsonClientTest < MiniTest::Spec
|
|
931
946
|
|
932
947
|
def test_put_multipart_should_raise_error_responses
|
933
948
|
url = "http://some.endpoint/some.json"
|
934
|
-
stub_request(:put, url).to_return(:
|
949
|
+
stub_request(:put, url).to_return(body: '', status: 500)
|
935
950
|
|
936
951
|
assert_raises GdsApi::HTTPServerError do
|
937
952
|
@client.put_multipart("http://some.endpoint/some.json", {"a" => "123"})
|
@@ -952,7 +967,7 @@ class JsonClientTest < MiniTest::Spec
|
|
952
967
|
ENV['GOVUK_APP_NAME'] = "api-tests"
|
953
968
|
|
954
969
|
url = "http://some.other.endpoint/some.json"
|
955
|
-
stub_request(:get, url).to_return(:
|
970
|
+
stub_request(:get, url).to_return(status: 200)
|
956
971
|
|
957
972
|
GdsApi::JsonClient.new.get_json(url)
|
958
973
|
|