From c399f7d07a88d333fa05a361c66a252d9fa462bb Mon Sep 17 00:00:00 2001 From: George Claghorn Date: Sun, 17 Mar 2019 17:22:46 -0400 Subject: Fix updating rich text via nested attributes Closes #35159. --- actiontext/test/dummy/app/models/message.rb | 3 +++ actiontext/test/dummy/app/models/review.rb | 5 +++++ .../dummy/db/migrate/20190317200724_create_reviews.rb | 8 ++++++++ actiontext/test/dummy/db/schema.rb | 8 +++++++- actiontext/test/unit/model_test.rb | 16 +++++++++++++++- 5 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 actiontext/test/dummy/app/models/review.rb create mode 100644 actiontext/test/dummy/db/migrate/20190317200724_create_reviews.rb (limited to 'actiontext/test') diff --git a/actiontext/test/dummy/app/models/message.rb b/actiontext/test/dummy/app/models/message.rb index 9ea4dbfe78..7bce50753c 100644 --- a/actiontext/test/dummy/app/models/message.rb +++ b/actiontext/test/dummy/app/models/message.rb @@ -1,4 +1,7 @@ class Message < ApplicationRecord has_rich_text :content has_rich_text :body + + has_one :review + accepts_nested_attributes_for :review end diff --git a/actiontext/test/dummy/app/models/review.rb b/actiontext/test/dummy/app/models/review.rb new file mode 100644 index 0000000000..e54a37685d --- /dev/null +++ b/actiontext/test/dummy/app/models/review.rb @@ -0,0 +1,5 @@ +class Review < ApplicationRecord + belongs_to :message + + has_rich_text :content +end diff --git a/actiontext/test/dummy/db/migrate/20190317200724_create_reviews.rb b/actiontext/test/dummy/db/migrate/20190317200724_create_reviews.rb new file mode 100644 index 0000000000..96e0eab287 --- /dev/null +++ b/actiontext/test/dummy/db/migrate/20190317200724_create_reviews.rb @@ -0,0 +1,8 @@ +class CreateReviews < ActiveRecord::Migration[6.0] + def change + create_table :reviews do |t| + t.belongs_to :message, null: false + t.string :author_name, null: false + end + end +end diff --git a/actiontext/test/dummy/db/schema.rb b/actiontext/test/dummy/db/schema.rb index 60ccbd4873..03e99b29d2 100644 --- a/actiontext/test/dummy/db/schema.rb +++ b/actiontext/test/dummy/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2019_03_05_172303) do +ActiveRecord::Schema.define(version: 2019_03_17_200724) do create_table "action_text_rich_texts", force: :cascade do |t| t.string "name", null: false @@ -61,5 +61,11 @@ ActiveRecord::Schema.define(version: 2019_03_05_172303) do t.datetime "updated_at", precision: 6, null: false end + create_table "reviews", force: :cascade do |t| + t.integer "message_id", null: false + t.string "author_name", null: false + t.index ["message_id"], name: "index_reviews_on_message_id" + end + add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id" end diff --git a/actiontext/test/unit/model_test.rb b/actiontext/test/unit/model_test.rb index d56363adc0..f4328ba2ce 100644 --- a/actiontext/test/unit/model_test.rb +++ b/actiontext/test/unit/model_test.rb @@ -49,8 +49,22 @@ class ActionText::ModelTest < ActiveSupport::TestCase assert_equal "Hello world", message.content.to_plain_text end - test "save body" do + test "saving body" do message = Message.create(subject: "Greetings", body: "

Hello world

") assert_equal "Hello world", message.body.to_plain_text end + + test "saving content via nested attributes" do + message = Message.create! subject: "Greetings", content: "

Hello world

", + review_attributes: { author_name: "Marcia", content: "Nice work!" } + assert_equal "Nice work!", message.review.content.to_plain_text + end + + test "updating content via nested attributes" do + message = Message.create! subject: "Greetings", content: "

Hello world

", + review_attributes: { author_name: "Marcia", content: "Nice work!" } + + message.update! review_attributes: { id: message.review.id, content: "Great work!" } + assert_equal "Great work!", message.review.reload.content.to_plain_text + end end -- cgit v1.2.3