diff options
author | George Claghorn <george@basecamp.com> | 2019-05-17 16:42:21 -0400 |
---|---|---|
committer | George Claghorn <george@basecamp.com> | 2019-05-17 16:46:16 -0400 |
commit | aa7da0471f7fcf2adbbc26c37a25914d8493928d (patch) | |
tree | 491f396ba26fcaf9b85dac3af10c5946e5fdc037 /actiontext/test/unit | |
parent | e10f01532e801174692f56175419e5fcbcdba36f (diff) | |
download | rails-aa7da0471f7fcf2adbbc26c37a25914d8493928d.tar.gz rails-aa7da0471f7fcf2adbbc26c37a25914d8493928d.tar.bz2 rails-aa7da0471f7fcf2adbbc26c37a25914d8493928d.zip |
Deduplicate ActionText::RichText embeds
Fix that an ActiveRecord::RecordNotUnique error would be raised when saving rich-text content with the same file attached multiple times.
Diffstat (limited to 'actiontext/test/unit')
-rw-r--r-- | actiontext/test/unit/model_test.rb | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/actiontext/test/unit/model_test.rb b/actiontext/test/unit/model_test.rb index af53f88caa..c2c3ccaaec 100644 --- a/actiontext/test/unit/model_test.rb +++ b/actiontext/test/unit/model_test.rb @@ -44,6 +44,15 @@ class ActionText::ModelTest < ActiveSupport::TestCase assert_equal [ActiveStorage::Attachment], message.content.embeds.map(&:class) end + test "embed extraction deduplicates file attachments" do + blob = create_file_blob(filename: "racecar.jpg", content_type: "image/jpg") + content = ActionText::Content.new("Hello world").append_attachables([ blob, blob ]) + + assert_nothing_raised do + Message.create!(subject: "Greetings", content: content) + end + end + test "saving content" do message = Message.create!(subject: "Greetings", content: "<h1>Hello world</h1>") assert_equal "Hello world", message.content.to_plain_text |