moduleGdsApimoduleTestHelpersmoduleAssetManagerASSET_MANAGER_ENDPOINT=Plek.current.find('asset-manager')defstub_any_asset_manager_callstub_request(:any,%r{\A#{ASSET_MANAGER_ENDPOINT}}).to_return(status: 200)enddefstub_asset_manager_isnt_availablestub_request(:any,%r{\A#{ASSET_MANAGER_ENDPOINT}}).to_return(status: 503)enddefstub_asset_manager_updates_any_asset(body={})stub_request(:put,%r{\A#{ASSET_MANAGER_ENDPOINT}/assets}).to_return(body: body.to_json,status: 200)enddefstub_asset_manager_deletes_any_asset(body={})stub_request(:delete,%r{\A#{ASSET_MANAGER_ENDPOINT}/assets}).to_return(body: body.to_json,status: 200)enddefstub_asset_manager_has_an_asset(id,atts)response=atts.merge("_response_info"=>{"status"=>"ok"})stub_request(:get,"#{ASSET_MANAGER_ENDPOINT}/assets/#{id}").to_return(body: response.to_json,status: 200)enddefstub_asset_manager_has_a_whitehall_asset(legacy_url_path,atts)response=atts.merge("_response_info"=>{"status"=>"ok"})stub_request(:get,"#{ASSET_MANAGER_ENDPOINT}/whitehall_assets/#{legacy_url_path}").to_return(body: response.to_json,status: 200)enddefstub_asset_manager_does_not_have_an_asset(id)response={"_response_info"=>{"status"=>"not found"}}stub_request(:any,"#{ASSET_MANAGER_ENDPOINT}/assets/#{id}").to_return(body: response.to_json,status: 404)enddefstub_asset_manager_does_not_have_a_whitehall_asset(legacy_url_path)response={"_response_info"=>{"status"=>"not found"}}stub_request(:get,"#{ASSET_MANAGER_ENDPOINT}/whitehall_assets/#{legacy_url_path}").to_return(body: response.to_json,status: 404)end# This can take a string of an exact url or a hash of options## with a string:# `stub_asset_manager_receives_an_asset("https://asset-manager/media/619ce797-b415-42e5-b2b1-2ffa0df52302/file.jpg")`## with a hash:# `stub_asset_manager_receives_an_asset(id: "20d04259-e3ae-4f71-8157-e6c843096e96", filename: "file.jpg")`# which would return a file url of "https://asset-manager/media/20d04259-e3ae-4f71-8157-e6c843096e96/file.jpg"## with no argument## `stub_asset_manager_receives_an_asset`# which would return a file url of "https://asset-manager/media/0053adbf-0737-4923-9d8a-8180f2c723af/0d19136c4a94f07"defstub_asset_manager_receives_an_asset(response_url={})stub_request(:post,"#{ASSET_MANAGER_ENDPOINT}/assets").to_returndoifresponse_url.is_a?(String)file_url=response_urlelseoptions={id: SecureRandom.uuid,filename: SecureRandom.hex(8)}.merge(response_url)file_url="#{ASSET_MANAGER_ENDPOINT}/media/#{options[:id]}/#{options[:filename]}"end{body: {file_url: file_url}.to_json,status: 200}endenddefstub_asset_manager_upload_failurestub_request(:post,"#{ASSET_MANAGER_ENDPOINT}/assets").to_return(status: 500)enddefstub_asset_manager_update_asset(asset_id,body={})stub_request(:put,"#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}").to_return(body: body.to_json,status: 200)enddefstub_asset_manager_update_asset_failure(asset_id)stub_request(:put,"#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}").to_return(status: 500)enddefstub_asset_manager_delete_asset(asset_id,body={})stub_request(:delete,"#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}").to_return(body: body.to_json,status: 200)enddefstub_asset_manager_delete_asset_failure(asset_id)stub_request(:delete,"#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}").to_return(status: 500)end# Aliases for DEPRECATED methodsalias_method:asset_manager_updates_any_asset,:stub_asset_manager_updates_any_assetalias_method:asset_manager_deletes_any_asset,:stub_asset_manager_deletes_any_assetalias_method:asset_manager_has_an_asset,:stub_asset_manager_has_an_assetalias_method:asset_manager_has_a_whitehall_asset,:stub_asset_manager_has_a_whitehall_assetalias_method:asset_manager_does_not_have_an_asset,:stub_asset_manager_does_not_have_an_assetalias_method:asset_manager_does_not_have_a_whitehall_asset,:stub_asset_manager_does_not_have_a_whitehall_assetalias_method:asset_manager_receives_an_asset,:stub_asset_manager_receives_an_assetalias_method:asset_manager_upload_failure,:stub_asset_manager_upload_failurealias_method:asset_manager_update_asset,:stub_asset_manager_update_assetalias_method:asset_manager_update_failure,:stub_asset_manager_update_asset_failurealias_method:asset_manager_delete_asset,:stub_asset_manager_delete_assetalias_method:asset_manager_delete_failure,:stub_asset_manager_delete_asset_failureendendend