mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Fix error saving Action Text content containing non-blob attachables
Failing test before the ActionText::RichText change: ``` Error: ActionText::ModelTest#test_embed_extraction_only_extracts_file_attachments: ArgumentError: Could not find or build blob: expected attachable, got #<ActionText::Attachables::RemoteImage:0x00007fb0259fef70 @url="http://example.com/cat.jpg", @content_type="image", @width=nil, @height=nil> ```
This commit is contained in:
parent
c7e7a4c79b
commit
48c6ef9a72
2 changed files with 10 additions and 1 deletions
|
@ -15,7 +15,7 @@ module ActionText
|
|||
has_many_attached :embeds
|
||||
|
||||
before_save do
|
||||
self.embeds = body.attachments.map(&:attachable) if body.present?
|
||||
self.embeds = body.attachables.grep(ActiveStorage::Blob) if body.present?
|
||||
end
|
||||
|
||||
def to_plain_text
|
||||
|
|
|
@ -35,6 +35,15 @@ class ActionText::ModelTest < ActiveSupport::TestCase
|
|||
assert_equal "racecar.jpg", message.content.embeds.first.filename.to_s
|
||||
end
|
||||
|
||||
test "embed extraction only extracts file attachments" do
|
||||
remote_image_html = '<action-text-attachment content-type="image" url="http://example.com/cat.jpg"></action-text-attachment>'
|
||||
blob = create_file_blob(filename: "racecar.jpg", content_type: "image/jpg")
|
||||
content = ActionText::Content.new(remote_image_html).append_attachables(blob)
|
||||
message = Message.create!(subject: "Greetings", content: content)
|
||||
assert_equal [ActionText::Attachables::RemoteImage, ActiveStorage::Blob], message.content.body.attachables.map(&:class)
|
||||
assert_equal [ActiveStorage::Attachment], message.content.embeds.map(&:class)
|
||||
end
|
||||
|
||||
test "saving content" do
|
||||
message = Message.create!(subject: "Greetings", content: "<h1>Hello world</h1>")
|
||||
assert_equal "Hello world", message.content.to_plain_text
|
||||
|
|
Loading…
Reference in a new issue