-
Notifications
You must be signed in to change notification settings - Fork 198
Expand file tree
/
Copy pathimage_deletion_integration_test.rb
More file actions
69 lines (58 loc) · 2.18 KB
/
Copy pathimage_deletion_integration_test.rb
File metadata and controls
69 lines (58 loc) · 2.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
require "test_helper"
require "capybara/rails"
class ImageDeletionIntegrationTest < ActionDispatch::IntegrationTest
extend Minitest::Spec::DSL
include Capybara::DSL
include Rails.application.routes.url_helpers
include TaxonomyHelper
include Admin::EditionRoutesHelper
describe "image deletion" do
context "given a draft document with images" do
let(:managing_editor) { create(:managing_editor) }
let(:image) { build(:image) }
let(:first_asset_id) { image.image_data.assets.first.asset_manager_id }
let(:edition) { create(:publication) }
before do
login_as(managing_editor)
stub_publishing_api_has_linkables([], document_type: "topic")
edition.images << image
setup_publishing_api_for(edition)
stub_publishing_api_expanded_links_with_taxons(edition.content_id, [])
stub_image_assets(image)
edition.save!
end
context "when one image is deleted" do
before do
visit admin_edition_path(edition)
click_link "Edit images"
within "#uploaded_embeddable_image_list" do
click_link "Delete"
end
click_button "Delete image"
assert_text "minister-of-funk.960x640.jpg has been deleted"
visit admin_edition_path(edition)
click_link "Force publish"
fill_in "Reason for force publishing", with: "testing"
click_button "Force publish"
end
it "deletes the corresponding asset in asset manager" do
Services.asset_manager.expects(:delete_asset).times(7)
PublishAttachmentAssetJob.drain
end
end
end
private
def setup_publishing_api_for(edition)
stub_publishing_api_has_links({ content_id: edition.document.content_id, links: {} })
end
def stub_asset(asset_manger_id, attributes = {})
url_id = "http://asset-manager/assets/#{asset_manger_id}"
Services.asset_manager.stubs(:asset)
.with(asset_manger_id)
.returns(attributes.merge(id: url_id).stringify_keys)
end
def stub_image_assets(image)
image.image_data.assets.each { |asset| stub_asset(asset.asset_manager_id) }
end
end
end