aboutsummaryrefslogtreecommitdiffstats
path: root/test/attachments_test.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2017-07-05 16:09:41 +0200
committerDavid Heinemeier Hansson <david@loudthinking.com>2017-07-05 16:09:41 +0200
commitb7cc003aa0aada594cb18ab80c13c13c75bcd389 (patch)
treee42658bfa9441c788d3c0c88680d2e92e0159469 /test/attachments_test.rb
parentaaf841518866b34d769d9a951a389d1eef70d6e7 (diff)
downloadrails-b7cc003aa0aada594cb18ab80c13c13c75bcd389.tar.gz
rails-b7cc003aa0aada594cb18ab80c13c13c75bcd389.tar.bz2
rails-b7cc003aa0aada594cb18ab80c13c13c75bcd389.zip
Attached one and many
Diffstat (limited to 'test/attachments_test.rb')
-rw-r--r--test/attachments_test.rb44
1 files changed, 39 insertions, 5 deletions
diff --git a/test/attachments_test.rb b/test/attachments_test.rb
index 970804b68f..2e7e5d1a79 100644
--- a/test/attachments_test.rb
+++ b/test/attachments_test.rb
@@ -5,23 +5,57 @@ require "active_vault/blob"
# ActiveRecord::Base.logger = Logger.new(STDOUT)
class User < ActiveRecord::Base
- has_file :avatar
+ has_one_attached :avatar
+ has_many_attached :highlights
end
class ActiveVault::AttachmentsTest < ActiveSupport::TestCase
setup { @user = User.create!(name: "DHH") }
- test "create attachment from existing blob" do
- @user.avatar = create_blob filename: "funky.jpg"
+ teardown { ActiveVault::Blob.all.each(&:purge) }
+
+ test "attach existing blob" do
+ @user.avatar.attach create_blob(filename: "funky.jpg")
assert_equal "funky.jpg", @user.avatar.filename.to_s
end
+ test "attach new blob" do
+ @user.avatar.attach io: StringIO.new("STUFF"), filename: "town.jpg", content_type: "image/jpg"
+ assert_equal "town.jpg", @user.avatar.filename.to_s
+ end
+
test "purge attached blob" do
- @user.avatar = create_blob filename: "funky.jpg"
+ @user.avatar.attach create_blob(filename: "funky.jpg")
avatar_key = @user.avatar.key
@user.avatar.purge
- assert_nil @user.avatar
+ assert_not @user.avatar.attached?
assert_not ActiveVault::Blob.site.exist?(avatar_key)
end
+
+ test "attach existing blobs" do
+ @user.highlights.attach create_blob(filename: "funky.jpg"), create_blob(filename: "wonky.jpg")
+
+ assert_equal "funky.jpg", @user.highlights.first.filename.to_s
+ assert_equal "wonky.jpg", @user.highlights.second.filename.to_s
+ end
+
+ test "attach new blobs" do
+ @user.highlights.attach(
+ { io: StringIO.new("STUFF"), filename: "town.jpg", content_type: "image/jpg" },
+ { io: StringIO.new("IT"), filename: "country.jpg", content_type: "image/jpg" })
+
+ assert_equal "town.jpg", @user.highlights.first.filename.to_s
+ assert_equal "country.jpg", @user.highlights.second.filename.to_s
+ end
+
+ test "purge attached blobs" do
+ @user.highlights.attach create_blob(filename: "funky.jpg"), create_blob(filename: "wonky.jpg")
+ highlight_keys = @user.highlights.collect(&:key)
+
+ @user.highlights.purge
+ assert_not @user.highlights.attached?
+ assert_not ActiveVault::Blob.site.exist?(highlight_keys.first)
+ assert_not ActiveVault::Blob.site.exist?(highlight_keys.second)
+ end
end