diff options
author | George Claghorn <george@basecamp.com> | 2018-07-31 20:49:35 -0400 |
---|---|---|
committer | George Claghorn <george@basecamp.com> | 2018-07-31 20:49:35 -0400 |
commit | 0fd8ba6ffff07a4556ec47840ef8c9dbd10e5e8b (patch) | |
tree | ac5a99fd643c17f0e100496321a4b4c404e5bb11 | |
parent | 36b69850cc6cafa60230ca92eabb9ad93adf7e81 (diff) | |
download | rails-0fd8ba6ffff07a4556ec47840ef8c9dbd10e5e8b.tar.gz rails-0fd8ba6ffff07a4556ec47840ef8c9dbd10e5e8b.tar.bz2 rails-0fd8ba6ffff07a4556ec47840ef8c9dbd10e5e8b.zip |
Prefer the ASt API
-rw-r--r-- | app/models/action_text/rich_text.rb | 7 | ||||
-rw-r--r-- | test/fixtures/files/racecar.jpg | bin | 0 -> 1124062 bytes | |||
-rw-r--r-- | test/test_helper.rb | 7 | ||||
-rw-r--r-- | test/unit/content_test.rb | 6 |
4 files changed, 16 insertions, 4 deletions
diff --git a/app/models/action_text/rich_text.rb b/app/models/action_text/rich_text.rb index 6747def9a5..7c0fdf240d 100644 --- a/app/models/action_text/rich_text.rb +++ b/app/models/action_text/rich_text.rb @@ -2,15 +2,14 @@ class ActionText::RichText < ActiveRecord::Base self.table_name = "action_text_rich_texts" serialize :body, ActionText::Content - + belongs_to :record, polymorphic: true, touch: true has_many_attached :embeds - after_save do - self.embeds_blobs = body.attachments.map(&:attachable) + before_save do + self.embeds = body.attachments.map(&:attachable) end - def to_s body.to_s.html_safe end diff --git a/test/fixtures/files/racecar.jpg b/test/fixtures/files/racecar.jpg Binary files differnew file mode 100644 index 0000000000..934b4caa22 --- /dev/null +++ b/test/fixtures/files/racecar.jpg diff --git a/test/test_helper.rb b/test/test_helper.rb index 94fec6b8be..79fde51549 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -19,3 +19,10 @@ if ActiveSupport::TestCase.respond_to?(:fixture_path=) ActiveSupport::TestCase.file_fixture_path = ActiveSupport::TestCase.fixture_path + "/files" ActiveSupport::TestCase.fixtures :all end + +class ActiveSupport::TestCase + private + def create_file_blob(filename:, content_type:, metadata: nil) + ActiveStorage::Blob.create_after_upload! io: file_fixture(filename).open, filename: filename, content_type: content_type, metadata: metadata + end +end diff --git a/test/unit/content_test.rb b/test/unit/content_test.rb index b1a06e2cfa..f1acf054db 100644 --- a/test/unit/content_test.rb +++ b/test/unit/content_test.rb @@ -6,5 +6,11 @@ module ActionText message = Message.new(subject: "Greetings", content: "<h1>Hello world</h1>") assert_equal "Hello world", message.content.body.to_plain_text end + + test "embed extraction" do + blob = create_file_blob(filename: "racecar.jpg", content_type: "image/jpg") + message = Message.create!(subject: "Greetings", content: ActionText::Content.new("Hello world").append_attachables(blob)) + assert_equal "racecar.jpg", message.content.embeds.first.filename.to_s + end end end |