gds-api-adapters 31.4.0 → 32.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 +1 -1
- data/lib/gds_api/test_helpers/rummager.rb +12 -7
- data/lib/gds_api/version.rb +1 -1
- data/test/govuk_headers_test.rb +4 -0
- data/test/publishing_api_v2_test.rb +118 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea71976a45af00221c91a69f9bf5e880913339ec
|
4
|
+
data.tar.gz: f25bf52a8ef88d54cd83080c80b87ba7d8a9c96a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65a1b28bb05b35f6a4fc8bc91c0733dc0672107a5dd2f8201d68bc6ad5002f69b4aeda420024219032009afb52d13b5515f92fac20a1d278d2363affd2b5a2a8
|
7
|
+
data.tar.gz: 7ac7469c0bb5b2221d4ed36b1694ac8f2ccf436020eaaeaa20137ac955bd36a9b19c07478c28a4cf1dfae020af9e092248dc699bb041d3398a8f667c3e636cc5
|
data/README.md
CHANGED
@@ -14,7 +14,7 @@ Example adapters for frequently used applications:
|
|
14
14
|
|
15
15
|
- [Publishing API](lib/gds_api/publishing_api_v2.rb) ([docs](http://www.rubydoc.info/github/alphagov/gds-api-adapters/master/GdsApi/PublishingApiV2), [test helper code](https://github.com/alphagov/gds-api-adapters/blob/master/lib/gds_api/test_helpers/publishing_api_v2.rb), [test helper docs](http://www.rubydoc.info/github/alphagov/gds-api-adapters/master/GdsApi/TestHelpers/PublishingApiV2))
|
16
16
|
- [Content Store](lib/gds_api/content_store.rb) ([docs](http://www.rubydoc.info/github/alphagov/gds-api-adapters/master/GdsApi/ContentStore), [test helper code](https://github.com/alphagov/gds-api-adapters/blob/master/lib/gds_api/test_helpers/content_store.rb), [test helper docs](http://www.rubydoc.info/github/alphagov/gds-api-adapters/master/GdsApi/TestHelpers/ContentStore))
|
17
|
-
- [Rummager](lib/gds_api/
|
17
|
+
- [Rummager](lib/gds_api/rummager.rb) ([docs](http://www.rubydoc.info/github/alphagov/gds-api-adapters/master/GdsApi/Rummager), [test helper code](https://github.com/alphagov/gds-api-adapters/blob/master/lib/gds_api/test_helpers/rummager.rb), [test helper docs](http://www.rubydoc.info/github/alphagov/gds-api-adapters/master/GdsApi/TestHelpers/Rummager))
|
18
18
|
|
19
19
|
## Logging
|
20
20
|
|
@@ -4,17 +4,19 @@ require 'gds_api/test_helpers/json_client_helper'
|
|
4
4
|
module GdsApi
|
5
5
|
module TestHelpers
|
6
6
|
module Rummager
|
7
|
+
RUMMAGER_ENDPOINT = Plek.current.find('rummager')
|
8
|
+
|
7
9
|
def stub_any_rummager_post
|
8
|
-
stub_request(:post, %r{#{
|
10
|
+
stub_request(:post, %r{#{RUMMAGER_ENDPOINT}/documents})
|
9
11
|
end
|
10
12
|
|
11
13
|
def stub_any_rummager_post_with_queueing_enabled
|
12
|
-
stub_request(:post, %r{#{
|
14
|
+
stub_request(:post, %r{#{RUMMAGER_ENDPOINT}/documents}) \
|
13
15
|
.to_return(status: [202, "Accepted"])
|
14
16
|
end
|
15
17
|
|
16
18
|
def assert_rummager_posted_item(attributes)
|
17
|
-
url =
|
19
|
+
url = RUMMAGER_ENDPOINT + "/documents"
|
18
20
|
assert_requested(:post, url) do |req|
|
19
21
|
data = JSON.parse(req.body)
|
20
22
|
attributes.to_a.all? do |key, value|
|
@@ -25,23 +27,26 @@ module GdsApi
|
|
25
27
|
|
26
28
|
# @deprecated Rummager.delete_docment is deprecated, so is this stub! Use `stub_any_rummager_delete_content`
|
27
29
|
def stub_any_rummager_delete
|
28
|
-
|
30
|
+
warn "stub_any_rummager_delete is deprecated, instead use: stub_any_rummager_delete_content"
|
31
|
+
stub_request(:delete, %r{#{RUMMAGER_ENDPOINT}/documents/.*})
|
29
32
|
end
|
30
33
|
|
31
34
|
def stub_any_rummager_delete_content
|
32
|
-
stub_request(:delete, %r{#{
|
35
|
+
stub_request(:delete, %r{#{RUMMAGER_ENDPOINT}/content.*})
|
33
36
|
end
|
34
37
|
|
35
38
|
# @deprecated Rummager.delete_docment is deprecated, so is this stub! Use `assert_rummager_deleted_content`
|
36
39
|
def assert_rummager_deleted_item(id)
|
40
|
+
warn "assert_rummager_deleted_item stub is deprecated, instead use: assert_rummager_deleted_content"
|
41
|
+
|
37
42
|
if id =~ %r{^/}
|
38
43
|
raise ArgumentError, 'Rummager id must not start with a slash'
|
39
44
|
end
|
40
|
-
assert_requested(:delete, %r{#{
|
45
|
+
assert_requested(:delete, %r{#{RUMMAGER_ENDPOINT}/documents/#{id}})
|
41
46
|
end
|
42
47
|
|
43
48
|
def assert_rummager_deleted_content(base_path)
|
44
|
-
assert_requested(:delete, %r{#{
|
49
|
+
assert_requested(:delete, %r{#{RUMMAGER_ENDPOINT}/content.*#{base_path}})
|
45
50
|
end
|
46
51
|
|
47
52
|
def rummager_has_services_and_info_data_for_organisation
|
data/lib/gds_api/version.rb
CHANGED
data/test/govuk_headers_test.rb
CHANGED
@@ -6,6 +6,10 @@ describe GdsApi::GovukHeaders do
|
|
6
6
|
Thread.current[:headers] = nil if Thread.current[:headers]
|
7
7
|
end
|
8
8
|
|
9
|
+
after :each do
|
10
|
+
GdsApi::GovukHeaders.clear_headers
|
11
|
+
end
|
12
|
+
|
9
13
|
it "supports read/write of headers" do
|
10
14
|
GdsApi::GovukHeaders.set_header("GDS-Request-Id", "123-456")
|
11
15
|
GdsApi::GovukHeaders.set_header("Content-Type", "application/pdf")
|
@@ -286,6 +286,124 @@ describe GdsApi::PublishingApiV2 do
|
|
286
286
|
end
|
287
287
|
end
|
288
288
|
|
289
|
+
describe "when a content item exists in with a superseded version" do
|
290
|
+
describe "when requesting the superseded version" do
|
291
|
+
before do
|
292
|
+
@content_item = content_item_for_content_id(@content_id)
|
293
|
+
|
294
|
+
publishing_api
|
295
|
+
.given("a content item exists in with a superseded version with content_id: #{@content_id}")
|
296
|
+
.upon_receiving("a request to return the superseded content item")
|
297
|
+
.with(
|
298
|
+
method: :get,
|
299
|
+
path: "/v2/content/#{@content_id}",
|
300
|
+
query: "version=1",
|
301
|
+
)
|
302
|
+
.will_respond_with(
|
303
|
+
status: 200,
|
304
|
+
body: {
|
305
|
+
"content_id" => @content_id,
|
306
|
+
"document_type" => Pact.like("special_route"),
|
307
|
+
"schema_name" => Pact.like("special_route"),
|
308
|
+
"publishing_app" => Pact.like("publisher"),
|
309
|
+
"rendering_app" => Pact.like("frontend"),
|
310
|
+
"locale" => Pact.like("en"),
|
311
|
+
"routes" => Pact.like([{}]),
|
312
|
+
"public_updated_at" => Pact.like("2015-07-30T13:58:11.000Z"),
|
313
|
+
"details" => Pact.like({}),
|
314
|
+
"publication_state" => "superseded"
|
315
|
+
},
|
316
|
+
headers: {
|
317
|
+
"Content-Type" => "application/json; charset=utf-8",
|
318
|
+
},
|
319
|
+
)
|
320
|
+
end
|
321
|
+
|
322
|
+
it "responds with 200 and the superseded content item" do
|
323
|
+
response = @api_client.get_content(@content_id, version: 1)
|
324
|
+
assert_equal 200, response.code
|
325
|
+
assert_equal response["publication_state"], "superseded"
|
326
|
+
end
|
327
|
+
end
|
328
|
+
|
329
|
+
describe "when requesting the published version" do
|
330
|
+
before do
|
331
|
+
@content_item = content_item_for_content_id(@content_id)
|
332
|
+
|
333
|
+
publishing_api
|
334
|
+
.given("a content item exists in with a superseded version with content_id: #{@content_id}")
|
335
|
+
.upon_receiving("a request to return the published content item")
|
336
|
+
.with(
|
337
|
+
method: :get,
|
338
|
+
path: "/v2/content/#{@content_id}",
|
339
|
+
query: "version=2",
|
340
|
+
)
|
341
|
+
.will_respond_with(
|
342
|
+
status: 200,
|
343
|
+
body: {
|
344
|
+
"content_id" => @content_id,
|
345
|
+
"document_type" => Pact.like("special_route"),
|
346
|
+
"schema_name" => Pact.like("special_route"),
|
347
|
+
"publishing_app" => Pact.like("publisher"),
|
348
|
+
"rendering_app" => Pact.like("frontend"),
|
349
|
+
"locale" => Pact.like("en"),
|
350
|
+
"routes" => Pact.like([{}]),
|
351
|
+
"public_updated_at" => Pact.like("2015-07-30T13:58:11.000Z"),
|
352
|
+
"details" => Pact.like({}),
|
353
|
+
"publication_state" => "live"
|
354
|
+
},
|
355
|
+
headers: {
|
356
|
+
"Content-Type" => "application/json; charset=utf-8",
|
357
|
+
},
|
358
|
+
)
|
359
|
+
end
|
360
|
+
|
361
|
+
it "responds with 200 and the published content item" do
|
362
|
+
response = @api_client.get_content(@content_id, version: 2)
|
363
|
+
assert_equal 200, response.code
|
364
|
+
assert_equal response["publication_state"], "live"
|
365
|
+
end
|
366
|
+
end
|
367
|
+
|
368
|
+
describe "when requesting no specific version" do
|
369
|
+
before do
|
370
|
+
@content_item = content_item_for_content_id(@content_id)
|
371
|
+
|
372
|
+
publishing_api
|
373
|
+
.given("a content item exists in with a superseded version with content_id: #{@content_id}")
|
374
|
+
.upon_receiving("a request to return the content item")
|
375
|
+
.with(
|
376
|
+
method: :get,
|
377
|
+
path: "/v2/content/#{@content_id}",
|
378
|
+
)
|
379
|
+
.will_respond_with(
|
380
|
+
status: 200,
|
381
|
+
body: {
|
382
|
+
"content_id" => @content_id,
|
383
|
+
"document_type" => Pact.like("special_route"),
|
384
|
+
"schema_name" => Pact.like("special_route"),
|
385
|
+
"publishing_app" => Pact.like("publisher"),
|
386
|
+
"rendering_app" => Pact.like("frontend"),
|
387
|
+
"locale" => Pact.like("en"),
|
388
|
+
"routes" => Pact.like([{}]),
|
389
|
+
"public_updated_at" => Pact.like("2015-07-30T13:58:11.000Z"),
|
390
|
+
"details" => Pact.like({}),
|
391
|
+
"publication_state" => "live"
|
392
|
+
},
|
393
|
+
headers: {
|
394
|
+
"Content-Type" => "application/json; charset=utf-8",
|
395
|
+
},
|
396
|
+
)
|
397
|
+
end
|
398
|
+
|
399
|
+
it "responds with 200 and the published content item" do
|
400
|
+
response = @api_client.get_content(@content_id)
|
401
|
+
assert_equal 200, response.code
|
402
|
+
assert_equal response["publication_state"], "live"
|
403
|
+
end
|
404
|
+
end
|
405
|
+
end
|
406
|
+
|
289
407
|
describe "a non-existent item" do
|
290
408
|
before do
|
291
409
|
publishing_api
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gds-api-adapters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 32.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Stewart
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: plek
|