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