aboutsummaryrefslogtreecommitdiffstats
path: root/activestorage/test/models/attachments_test.rb
diff options
context:
space:
mode:
authorNicholas Shirley <nicholas@reallymy.email>2018-02-12 12:29:18 +0100
committerGeorge Claghorn <george@basecamp.com>2018-03-06 13:03:02 -0500
commitf9a5839083e697f0d5aad6d9304cd5f26e2a7a11 (patch)
tree5d69dc69db87cda7040b61d11aeb4e1787cb32c7 /activestorage/test/models/attachments_test.rb
parent40d3fa5dfe01d0e3bd0f6530aba3b4cddfda3969 (diff)
downloadrails-f9a5839083e697f0d5aad6d9304cd5f26e2a7a11.tar.gz
rails-f9a5839083e697f0d5aad6d9304cd5f26e2a7a11.tar.bz2
rails-f9a5839083e697f0d5aad6d9304cd5f26e2a7a11.zip
Allow selectively purging attached blobs
Diffstat (limited to 'activestorage/test/models/attachments_test.rb')
-rw-r--r--activestorage/test/models/attachments_test.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/activestorage/test/models/attachments_test.rb b/activestorage/test/models/attachments_test.rb
index 36e76f2845..29b83eb841 100644
--- a/activestorage/test/models/attachments_test.rb
+++ b/activestorage/test/models/attachments_test.rb
@@ -418,4 +418,32 @@ class ActiveStorage::AttachmentsTest < ActiveSupport::TestCase
@user.destroy
assert_not ActiveStorage::Attachment.exists?(record: @user, name: "vlogs")
end
+
+ test "selectively purge one attached blob of many" do
+ first_blob = create_blob(filename: "funky.jpg")
+ second_blob = create_blob(filename: "wonky.jpg")
+ attachments = @user.highlights.attach(first_blob, second_blob)
+
+ assert_difference -> { ActiveStorage::Blob.count }, -1 do
+ @user.highlights.where(id: attachments.first.id).purge
+ end
+
+ assert_not ActiveStorage::Blob.exists?(key: first_blob.key)
+ assert ActiveStorage::Blob.exists?(key: second_blob.key)
+ end
+
+ test "selectively purge one attached blob of many later" do
+ first_blob = create_blob(filename: "funky.jpg")
+ second_blob = create_blob(filename: "wonky.jpg")
+ attachments = @user.highlights.attach(first_blob, second_blob)
+
+ perform_enqueued_jobs do
+ assert_difference -> { ActiveStorage::Blob.count }, -1 do
+ @user.highlights.where(id: attachments.first.id).purge_later
+ end
+ end
+
+ assert_not ActiveStorage::Blob.exists?(key: first_blob.key)
+ assert ActiveStorage::Blob.exists?(key: second_blob.key)
+ end
end