diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2017-07-05 18:31:49 +0200 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2017-07-05 18:31:53 +0200 |
commit | e3ade5fd2dc76235ecc98999f44217c470eb72e1 (patch) | |
tree | 353061742c8dd97812b27d7b57c60d596485d71a /test/attachments_test.rb | |
parent | c2fa570e2ec853c2e29325cbc4e90d03f7095f22 (diff) | |
download | rails-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.rb | 34 |
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 |