diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2017-07-05 16:09:41 +0200 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2017-07-05 16:09:41 +0200 |
commit | b7cc003aa0aada594cb18ab80c13c13c75bcd389 (patch) | |
tree | e42658bfa9441c788d3c0c88680d2e92e0159469 /test/attachments_test.rb | |
parent | aaf841518866b34d769d9a951a389d1eef70d6e7 (diff) | |
download | rails-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.rb | 44 |
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 |