From 9401e451d18d34ad8fd27161e66496171dbed54f Mon Sep 17 00:00:00 2001 From: Harry Wood Date: Thu, 28 Apr 2022 23:05:36 +0100 Subject: [PATCH] Format report text with kramdown Pass the text of reports ('details' field) through the RichText formatter to give us kramdown formatting support. --- app/models/report.rb | 4 ++++ app/views/issues/_reports.html.erb | 2 +- test/models/report_test.rb | 5 +++++ test/system/issues_test.rb | 5 +++-- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/models/report.rb b/app/models/report.rb index 77a967641..1475197fe 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -36,4 +36,8 @@ class Report < ApplicationRecord else %w[other] end end + + def details + RichText.new("markdown", self[:details]) + end end diff --git a/app/views/issues/_reports.html.erb b/app/views/issues/_reports.html.erb index b1b690f8c..23b6d556e 100644 --- a/app/views/issues/_reports.html.erb +++ b/app/views/issues/_reports.html.erb @@ -9,7 +9,7 @@ :user => link_to(report.user.display_name, user_path(report.user)), :updated_at => l(report.updated_at.to_datetime, :format => :friendly) %>

-

<%= report.details %>

+

<%= report.details.to_html %>


diff --git a/test/models/report_test.rb b/test/models/report_test.rb index d172ff7db..64ccf501d 100644 --- a/test/models/report_test.rb +++ b/test/models/report_test.rb @@ -32,4 +32,9 @@ class ReportTest < ActiveSupport::TestCase report.category = "" assert_not report.valid? end + + def test_details + report = create(:report) + assert_instance_of(RichText::Markdown, report.details) + end end diff --git a/test/system/issues_test.rb b/test/system/issues_test.rb index fd5f433fc..2a9862ed9 100644 --- a/test/system/issues_test.rb +++ b/test/system/issues_test.rb @@ -33,11 +33,12 @@ class IssuesTest < ApplicationSystemTestCase def test_view_issue_with_report sign_in_as(create(:moderator_user)) issue = create(:issue, :assigned_role => "moderator") - issue.reports << create(:report, :details => "test report text") + issue.reports << create(:report, :details => "test report text **with kramdown**") visit issue_path(issue) assert_content I18n.t("issues.show.reports", :count => 1) - assert_content "test report text" + assert_content "test report text with kramdown" + assert_selector "strong", :text => "with kramdown" end def test_view_issues_with_no_reported_user -- 2.39.5