diff --git a/app/assets/javascripts/imageable.js b/app/assets/javascripts/imageable.js index c2ee3e882..a6e658796 100644 --- a/app/assets/javascripts/imageable.js +++ b/app/assets/javascripts/imageable.js @@ -8,6 +8,9 @@ $("#nested-image").on("cocoon:after-remove", function() { $("#new_image_link").removeClass("hide"); }); + $("#nested-image").on("cocoon:before-insert", function() { + $(".js-image-attachment").closest(".image").remove(); + }); $("#nested-image").on("cocoon:after-insert", function(e, nested_image) { var input; $("#new_image_link").addClass("hide"); diff --git a/spec/shared/system/nested_imageable.rb b/spec/shared/system/nested_imageable.rb index 27eeeff3e..9de787867 100644 --- a/spec/shared/system/nested_imageable.rb +++ b/spec/shared/system/nested_imageable.rb @@ -227,6 +227,17 @@ shared_examples "nested imageable" do |imageable_factory_name, path, imageable_p expect(page).not_to have_css ".image" expect(page).to have_css "a#new_image_link" end + + scenario "don't duplicate fields after removing and adding an image" do + create(:image, imageable: imageable) + do_login_for user + + visit send(path, arguments) + click_link "Remove image" + click_link "Add image" + + expect(page).to have_css ".image", count: 1, visible: :all + end end end end