Module: GdsApi::TestHelpers::ContentStore
Instance Method Summary
collapse
#gone_content_item_for_base_path, #titleize_base_path
Instance Method Details
#content_item_for_base_path(base_path) ⇒ Object
81
82
83
|
# File 'lib/gds_api/test_helpers/content_store.rb', line 81
def content_item_for_base_path(base_path)
super.merge("base_path" => base_path)
end
|
#content_store_endpoint(draft: false) ⇒ Object
10
11
12
|
# File 'lib/gds_api/test_helpers/content_store.rb', line 10
def content_store_endpoint(draft: false)
draft ? Plek.find("draft-content-store") : Plek.find("content-store")
end
|
#stub_content_store_does_not_have_item(base_path, options = {}) ⇒ Object
37
38
39
40
41
|
# File 'lib/gds_api/test_helpers/content_store.rb', line 37
def stub_content_store_does_not_have_item(base_path, options = {})
endpoint = content_store_endpoint(draft: options[:draft])
stub_request(:get, "#{endpoint}/content#{base_path}").to_return(status: 404, headers: {})
stub_request(:get, "#{endpoint}/incoming-links#{base_path}").to_return(status: 404, headers: {})
end
|
#stub_content_store_has_gone_item(base_path, body = gone_content_item_for_base_path(base_path), options = {}) ⇒ Object
Content store has gone item
Stubs a content item in the content store to respond with 410 HTTP Status Code and response body with ‘format’ set to ‘gone’.
67
68
69
70
71
72
73
74
75
|
# File 'lib/gds_api/test_helpers/content_store.rb', line 67
def stub_content_store_has_gone_item(base_path, body = gone_content_item_for_base_path(base_path), options = {})
body = body.to_json unless body.is_a?(String)
endpoint = content_store_endpoint(draft: options[:draft])
stub_request(:get, "#{endpoint}/content#{base_path}").to_return(
status: 410,
body:,
headers: {},
)
end
|
#stub_content_store_has_incoming_links(base_path, links) ⇒ Object
85
86
87
88
89
90
|
# File 'lib/gds_api/test_helpers/content_store.rb', line 85
def stub_content_store_has_incoming_links(base_path, links)
url = "#{content_store_endpoint}/incoming-links#{base_path}"
body = links.to_json
stub_request(:get, url).to_return(body:)
end
|
#stub_content_store_has_item(base_path, body = content_item_for_base_path(base_path), options = {}) ⇒ Object
Stubs a content item in the content store. The following options can be passed in:
:max_age will set the max-age of the Cache-Control header in the response. Defaults to 900
:private if true, the Cache-Control header will include the "private" directive. By default it
will include "public"
:draft will point to the draft content store if set to true
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/gds_api/test_helpers/content_store.rb', line 21
def stub_content_store_has_item(base_path, body = content_item_for_base_path(base_path), options = {})
max_age = options.fetch(:max_age, 900)
visibility = options[:private] ? "private" : "public"
body = body.to_json unless body.is_a?(String)
endpoint = content_store_endpoint(draft: options[:draft])
stub_request(:get, "#{endpoint}/content#{base_path}").to_return(
status: 200,
body:,
headers: {
cache_control: "#{visibility}, max-age=#{max_age}",
date: Time.now.httpdate,
},
)
end
|
#stub_content_store_isnt_available ⇒ Object
77
78
79
|
# File 'lib/gds_api/test_helpers/content_store.rb', line 77
def stub_content_store_isnt_available
stub_request(:any, /#{content_store_endpoint}\/.*/).to_return(status: 503)
end
|