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