Module: GdsApi::TestHelpers::ContentStore
- Includes:
- ContentItemHelpers
- Defined in:
- lib/gds_api/test_helpers/content_store.rb
Instance Method Summary collapse
- #content_item_for_base_path(base_path) ⇒ Object
- #content_store_does_not_have_item(base_path, options = {}) ⇒ Object
-
#content_store_endpoint(draft = false) ⇒ Object
Stubs a content item in the content store.
- #content_store_has_incoming_links(base_path, links) ⇒ Object
- #content_store_has_item(base_path, body = content_item_for_base_path(base_path), options = {}) ⇒ Object
- #content_store_isnt_available ⇒ Object
Methods included from ContentItemHelpers
Instance Method Details
#content_item_for_base_path(base_path) ⇒ Object
50 51 52 |
# File 'lib/gds_api/test_helpers/content_store.rb', line 50 def content_item_for_base_path(base_path) super.merge({ "base_path" => base_path }) end |
#content_store_does_not_have_item(base_path, options = {}) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/gds_api/test_helpers/content_store.rb', line 38 def content_store_does_not_have_item(base_path, = {}) url = content_store_endpoint([:draft]) + "/content" + base_path stub_request(:get, url).to_return(status: 404, headers: {}) url = content_store_endpoint([:draft]) + "/incoming-links" + base_path stub_request(:get, url).to_return(status: 404, headers: {}) end |
#content_store_endpoint(draft = false) ⇒ 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
18 19 20 |
# File 'lib/gds_api/test_helpers/content_store.rb', line 18 def content_store_endpoint(draft=false) draft ? Plek.current.find('draft-content-store') : Plek.current.find('content-store') end |
#content_store_has_incoming_links(base_path, links) ⇒ Object
54 55 56 57 58 59 |
# File 'lib/gds_api/test_helpers/content_store.rb', line 54 def 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: body) end |
#content_store_has_item(base_path, body = content_item_for_base_path(base_path), options = {}) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/gds_api/test_helpers/content_store.rb', line 22 def content_store_has_item(base_path, body = content_item_for_base_path(base_path), = {}) max_age = .fetch(:max_age, 900) visibility = [:private] ? "private" : "public" url = content_store_endpoint([:draft]) + "/content" + base_path body = body.to_json unless body.is_a?(String) stub_request(:get, url).to_return( status: 200, body: body, headers: { cache_control: "#{visibility}, max-age=#{max_age}", date: Time.now.httpdate } ) end |
#content_store_isnt_available ⇒ Object
46 47 48 |
# File 'lib/gds_api/test_helpers/content_store.rb', line 46 def content_store_isnt_available stub_request(:any, /#{content_store_endpoint}\/.*/).to_return(:status => 503) end |