aboutsummaryrefslogtreecommitdiffstats
path: root/test/attachments_test.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2017-07-05 18:31:49 +0200
committerDavid Heinemeier Hansson <david@loudthinking.com>2017-07-05 18:31:53 +0200
commite3ade5fd2dc76235ecc98999f44217c470eb72e1 (patch)
tree353061742c8dd97812b27d7b57c60d596485d71a /test/attachments_test.rb
parentc2fa570e2ec853c2e29325cbc4e90d03f7095f22 (diff)
downloadrails-e3ade5fd2dc76235ecc98999f44217c470eb72e1.tar.gz
rails-e3ade5fd2dc76235ecc98999f44217c470eb72e1.tar.bz2
rails-e3ade5fd2dc76235ecc98999f44217c470eb72e1.zip
Default to purging later when the owning record is destroyed
Diffstat (limited to 'test/attachments_test.rb')
-rw-r--r--test/attachments_test.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/attachments_test.rb b/test/attachments_test.rb
index 2e7e5d1a79..1b784b50c1 100644
--- a/test/attachments_test.rb
+++ b/test/attachments_test.rb
@@ -2,6 +2,10 @@ require "test_helper"
require "database/setup"
require "active_vault/blob"
+require "active_job"
+ActiveJob::Base.queue_adapter = :test
+ActiveJob::Base.logger = nil
+
# ActiveRecord::Base.logger = Logger.new(STDOUT)
class User < ActiveRecord::Base
@@ -10,6 +14,8 @@ class User < ActiveRecord::Base
end
class ActiveVault::AttachmentsTest < ActiveSupport::TestCase
+ include ActiveJob::TestHelper
+
setup { @user = User.create!(name: "DHH") }
teardown { ActiveVault::Blob.all.each(&:purge) }
@@ -33,6 +39,19 @@ class ActiveVault::AttachmentsTest < ActiveSupport::TestCase
assert_not ActiveVault::Blob.site.exist?(avatar_key)
end
+ test "purge attached blob later when the record is destroyed" do
+ @user.avatar.attach create_blob(filename: "funky.jpg")
+ avatar_key = @user.avatar.key
+
+ perform_enqueued_jobs do
+ @user.destroy
+
+ assert_nil ActiveVault::Blob.find_by(key: avatar_key)
+ assert_not ActiveVault::Blob.site.exist?(avatar_key)
+ end
+ end
+
+
test "attach existing blobs" do
@user.highlights.attach create_blob(filename: "funky.jpg"), create_blob(filename: "wonky.jpg")
@@ -58,4 +77,19 @@ class ActiveVault::AttachmentsTest < ActiveSupport::TestCase
assert_not ActiveVault::Blob.site.exist?(highlight_keys.first)
assert_not ActiveVault::Blob.site.exist?(highlight_keys.second)
end
+
+ test "purge attached blobs later when the record is destroyed" do
+ @user.highlights.attach create_blob(filename: "funky.jpg"), create_blob(filename: "wonky.jpg")
+ highlight_keys = @user.highlights.collect(&:key)
+
+ perform_enqueued_jobs do
+ @user.destroy
+
+ assert_nil ActiveVault::Blob.find_by(key: highlight_keys.first)
+ assert_not ActiveVault::Blob.site.exist?(highlight_keys.first)
+
+ assert_nil ActiveVault::Blob.find_by(key: highlight_keys.second)
+ assert_not ActiveVault::Blob.site.exist?(highlight_keys.second)
+ end
+ end
end