1 # frozen_string_literal: true
5 class IssuesHelperTest < ActionView::TestCase
6 attr_accessor :current_user
8 def test_reportable_heading_diary_comment
9 create(:language, :code => "en")
10 diary_entry = create(:diary_entry, :title => "A Discussion")
11 diary_comment = create(:diary_comment, :diary_entry => diary_entry, :created_at => "2020-03-15", :updated_at => "2021-05-17")
13 heading = reportable_heading diary_comment
15 dom_heading = Rails::Dom::Testing.html_document_fragment.parse "<p>#{heading}</p>"
16 assert_dom dom_heading, ":root", "Diary Comment A Discussion, comment ##{diary_comment.id} created on 15 March 2020 at 00:00, updated on 17 May 2021 at 00:00"
17 assert_dom dom_heading, "a", 1 do
18 assert_dom "> @href", diary_entry_url(diary_entry.user, diary_entry, :anchor => "comment#{diary_comment.id}")
22 def test_reportable_heading_diary_entry
23 create(:language, :code => "en")
24 diary_entry = create(:diary_entry, :title => "Important Subject", :created_at => "2020-03-24", :updated_at => "2021-05-26")
26 heading = reportable_heading diary_entry
28 dom_heading = Rails::Dom::Testing.html_document_fragment.parse "<p>#{heading}</p>"
29 assert_dom dom_heading, ":root", "Diary Entry Important Subject created on 24 March 2020 at 00:00, updated on 26 May 2021 at 00:00"
30 assert_dom dom_heading, "a", 1 do
31 assert_dom "> @href", diary_entry_url(diary_entry.user, diary_entry)
35 def test_reportable_heading_note
36 note = create(:note, :created_at => "2020-03-14", :updated_at => "2021-05-16")
38 heading = reportable_heading note
40 dom_heading = Rails::Dom::Testing.html_document_fragment.parse "<p>#{heading}</p>"
41 assert_dom dom_heading, ":root", "Note ##{note.id} created on 14 March 2020 at 00:00, updated on 16 May 2021 at 00:00"
42 assert_dom dom_heading, "a", 1 do
43 assert_dom "> @href", note_url(note)
47 def test_reportable_heading_user
48 user = create(:user, :display_name => "Someone", :created_at => "2020-07-18")
50 heading = reportable_heading user
52 dom_heading = Rails::Dom::Testing.html_document_fragment.parse "<p>#{heading}</p>"
53 assert_dom dom_heading, ":root", "User Someone created on 18 July 2020 at 00:00"
54 assert_dom dom_heading, "a", 1 do
55 assert_dom "> @href", user_url(user)
60 target_user = create(:user)
61 self.current_user = create(:moderator_user)
63 n = (Settings.max_issues_count - 1)
65 create(:note_with_comments) do |note|
66 create(:issue, :reportable => note, :reported_user => target_user, :assigned_role => "moderator")
69 expected = <<~HTML.delete("\n")
70 <span class="badge count-number">#{n}</span>
72 assert_dom_equal expected, open_issues_count
75 create(:note_with_comments) do |note|
76 create(:issue, :reportable => note, :reported_user => target_user, :assigned_role => "moderator")
78 expected = <<~HTML.delete("\n")
79 <span class="badge count-number">#{n}+</span>
81 assert_dom_equal expected, open_issues_count