diff --git a/app/helpers/messages_helper.rb b/app/helpers/messages_helper.rb index 2b3faf6..687d9a4 100644 --- a/app/helpers/messages_helper.rb +++ b/app/helpers/messages_helper.rb @@ -130,7 +130,8 @@ module MessagesHelper end end - fragment.to_html.html_safe + # A
starting with a newline needs an extra one written out to survive the next parse
+ fragment.to_html(preserve_newline: true).html_safe
end
def messages_actions
diff --git a/test/helpers/messages_helper_test.rb b/test/helpers/messages_helper_test.rb
index 65830f1..911317a 100644
--- a/test/helpers/messages_helper_test.rb
+++ b/test/helpers/messages_helper_test.rb
@@ -58,6 +58,12 @@ class MessagesHelperTest < ActionView::TestCase
end
end
+ test "linking text doesn't eat a code block's leading blank line" do
+ linked = view.send(:auto_link_text, "\n\n\nfirst https://example.com
".html_safe)
+
+ assert_equal "\nfirst https://example.com", Nokogiri::HTML5.fragment(linked).at_css("pre").text
+ end
+
test "message_presentation leaves an existing link's text alone" do
message = Message.create! room: rooms(:pets), body: '', client_message_id: "0015", creator: users(:jason)