diff --git a/app/helpers/script_helper.rb b/app/helpers/script_helper.rb index ae35373dc69..d2cb41973fa 100644 --- a/app/helpers/script_helper.rb +++ b/app/helpers/script_helper.rb @@ -19,7 +19,7 @@ def render_javascript_pack_once_tags(...) asset_sources.get_sources(name).each do |source| integrity = asset_sources.get_integrity(source) - if attributes[:preload_links_header] != false + if attributes.delete(:preload_links_header) != false AssetPreloadLinker.append( headers: response.headers, as: :script, diff --git a/spec/helpers/script_helper_spec.rb b/spec/helpers/script_helper_spec.rb index 432550d65af..2aba34a7c32 100644 --- a/spec/helpers/script_helper_spec.rb +++ b/spec/helpers/script_helper_spec.rb @@ -112,6 +112,17 @@ javascript_packs_tag_once('application', preload_links_header: false) end + it 'prints tags with expected attributes' do + output = render_javascript_pack_once_tags + + expect(output).to have_css( + "script:not([preload_links_header]):not([crossorigin])[src^='/application.js'] ~ \ + script:not([preload_links_header]):not([crossorigin])[src^='/document-capture.js']", + count: 1, + visible: :all, + ) + end + it 'does not append preload header' do render_javascript_pack_once_tags