From 3eb8c89c0410fac34aefc8b89b8c6b5901c39415 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 24 Jul 2017 14:35:36 -0500 Subject: Fix blob associations cc @javan --- test/models/attachments_test.rb | 18 ++++++++++++++++++ test/test_helper.rb | 1 + 2 files changed, 19 insertions(+) (limited to 'test') diff --git a/test/models/attachments_test.rb b/test/models/attachments_test.rb index eac3cbe680..82256e1f44 100644 --- a/test/models/attachments_test.rb +++ b/test/models/attachments_test.rb @@ -30,6 +30,13 @@ class ActiveStorage::AttachmentsTest < ActiveSupport::TestCase assert_equal "town.jpg", @user.avatar.filename.to_s end + test "access underlying associations of new blob" do + @user.avatar.attach create_blob(filename: "funky.jpg") + assert_equal @user, @user.avatar_attachment.record + assert_equal @user.avatar_attachment.blob, @user.avatar_blob + assert_equal "funky.jpg", @user.avatar_attachment.blob.filename.to_s + end + test "purge attached blob" do @user.avatar.attach create_blob(filename: "funky.jpg") avatar_key = @user.avatar.key @@ -79,6 +86,17 @@ class ActiveStorage::AttachmentsTest < ActiveSupport::TestCase assert_equal "country.jpg", highlights.second.filename.to_s end + test "access underlying associations of 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 @user, @user.highlights_attachments.first.record + assert_equal @user.highlights_attachments.collect(&:blob).sort, @user.highlights_blobs.sort + assert_equal "town.jpg", @user.highlights_attachments.first.blob.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) diff --git a/test/test_helper.rb b/test/test_helper.rb index 650e997205..d3a55e2cf0 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -23,6 +23,7 @@ rescue Errno::ENOENT {} end +require "active_storage/blob" require "active_storage/service/disk_service" require "tmpdir" ActiveStorage::Blob.service = ActiveStorage::Service::DiskService.new(root: Dir.mktmpdir("active_storage_tests")) -- cgit v1.2.3