diff --git a/app/views/shared/_form_image_field.html.erb b/app/views/shared/_form_image_field.html.erb index e9bb300a0..53eb1e48a 100644 --- a/app/views/shared/_form_image_field.html.erb +++ b/app/views/shared/_form_image_field.html.erb @@ -80,7 +80,7 @@
<%= if blob.present? && blob.respond_to?(:persisted?) && blob.persisted? - link_to(blob.filename.to_s, url_for(file), class: "underline") + link_to(blob.filename.to_s, url_for(file), class: "underline", target: "_blank", rel: "noopener") else "No file selected" end diff --git a/spec/views/shared/_form_image_field.html.erb_spec.rb b/spec/views/shared/_form_image_field.html.erb_spec.rb new file mode 100644 index 000000000..ba388dc21 --- /dev/null +++ b/spec/views/shared/_form_image_field.html.erb_spec.rb @@ -0,0 +1,14 @@ +require "rails_helper" + +RSpec.describe "shared/_form_image_field", type: :view do + let(:asset) { create(:gallery_asset, :with_file) } + let(:builder) { ActionView::Helpers::FormBuilder.new(:gallery_asset, asset, view, {}) } + + before do + render partial: "shared/form_image_field", locals: { f: builder, label: "Gallery 1" } + end + + it "links the attached file's name so it opens in a new tab" do + expect(rendered).to have_css("a[href][target='_blank'][rel='noopener']", text: asset.file.filename.to_s) + end +end