Make tests pass with action text

This commit is contained in:
Jorge Manrubia
2025-05-29 12:37:16 +02:00
parent 515cb2afd2
commit ecf82d8703
8 changed files with 42 additions and 49 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ gem "rqrcode"
gem "redcarpet"
gem "rouge"
gem "jbuilder"
gem "actiontext-lexical", github: "basecamp/actiontext-lexical", branch: "initial"
gem "actiontext-lexical", github: "basecamp/actiontext-lexical"
gem "image_processing", "~> 1.14"
# Telemetry and logging
+1 -2
View File
@@ -1,7 +1,6 @@
GIT
remote: https://github.com/basecamp/actiontext-lexical.git
revision: 8804035239fc0ba320dcb3cce47d56297af37634
branch: initial
revision: 19038b86b8617062adbb930990edaacc1f643e3d
specs:
actiontext-lexical (0.1.0)
rails (>= 8.0.2)
@@ -17,11 +17,11 @@ class Cards::CommentsControllerTest < ActionDispatch::IntegrationTest
put card_comment_path(cards(:logo), comments(:logo_agreement_kevin)), params: { comment: { body: "I've changed my mind" } }
assert_response :success
assert_equal "I've changed my mind", comments(:logo_agreement_kevin).reload.body.content
assert_action_text "I've changed my mind", comments(:logo_agreement_kevin).reload.body
end
test "update another user's comment" do
assert_no_changes "comments(:logo_agreement_jz).body.content" do
assert_no_changes ->{ comments(:logo_agreement_jz).reload.body.to_s } do
put card_comment_path(cards(:logo), comments(:logo_agreement_jz)), params: { comment: { body: "I've changed my mind" } }
end
@@ -1,25 +0,0 @@
require "test_helper"
class UploadsControllerTest < ActionDispatch::IntegrationTest
setup do
sign_in_as :kevin
end
test "create" do
assert_changes -> { ActiveStorage::Attachment.count }, 1 do
post uploads_path(format: "json"), params: { file: fixture_file_upload("moon.jpg", "image/jpeg") }, as: :xhr
end
assert_response :success
assert_equal ActiveStorage::Attachment.last.slug_url(host: "#{ApplicationRecord.current_tenant}.example.com", port: nil), response.parsed_body["fileUrl"]
assert_equal "image/jpeg", response.parsed_body["mimetype"]
assert_equal "moon.jpg", response.parsed_body["fileName"]
end
test "show" do
accounts("37s").uploads.attach fixture_file_upload("moon.jpg", "image/jpeg")
get upload_path(slug: accounts("37s").uploads.last.slug)
assert_response :redirect
assert_match /\/rails\/active_storage\/.*\/moon\.jpg/, @response.redirect_url
end
end
-14
View File
@@ -1,14 +0,0 @@
logo_agreement_jz:
record: logo_agreement_jz (Comment)
name: body
content: I agree.
logo_agreement_kevin:
record: logo_agreement_kevin (Comment)
name: body
content: Same, lets do it.
layout_overflowing_david:
record: layout_overflowing_david (Comment)
name: body
content: The text is overflowing the container.
+16 -4
View File
@@ -1,4 +1,16 @@
# one:
# record: name_of_fixture (ClassOfFixture)
# name: content
# body: <p>In a <i>million</i> stars!</p>
logo_agreement_jz:
record: logo_agreement_jz (Comment)
name: body
body: I agree.
logo_agreement_kevin:
record: logo_agreement_kevin (Comment)
name: body
body: Same, lets do it.
layout_overflowing_david:
record: layout_overflowing_david (Comment)
name: body
body: The text is overflowing the container.
+1 -1
View File
@@ -22,7 +22,7 @@ module ActiveSupport
fixtures :all
include ActiveJob::TestHelper
include CardTestHelper, ChangeTestHelper, SessionTestHelper
include ActionTextTestHelper, CardTestHelper, ChangeTestHelper, SessionTestHelper
end
end
@@ -0,0 +1,21 @@
module ActionTextTestHelper
def assert_action_text(expected_html, content)
assert_equal_html <<~HTML, content.to_s
<div class="action-text-content">#{expected_html}</action-text-content>
HTML
end
def assert_equal_html(expected, actual)
assert_equal normalize_html(expected), normalize_html(actual)
end
def normalize_html(html)
Nokogiri::HTML.fragment(html).tap do |fragment|
fragment.traverse do |node|
if node.text?
node.content = node.text.strip.gsub(/\s+/, ' ')
end
end
end.to_html.strip
end
end