]> git.openstreetmap.org Git - rails.git/blob - test/helpers/issues_helper_test.rb
Merge remote-tracking branch 'upstream/pull/5009'
[rails.git] / test / helpers / issues_helper_test.rb
1 require "test_helper"
2
3 class IssuesHelperTest < ActionView::TestCase
4   attr_accessor :current_user
5
6   def test_reportable_heading_diary_comment
7     create(:language, :code => "en")
8     diary_entry = create(:diary_entry, :title => "A Discussion")
9     diary_comment = create(:diary_comment, :diary_entry => diary_entry, :created_at => "2020-03-15", :updated_at => "2021-05-17")
10
11     heading = reportable_heading diary_comment
12
13     dom_heading = Rails::Dom::Testing.html_document_fragment.parse "<p>#{heading}</p>"
14     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"
15     assert_dom dom_heading, "a", 1 do
16       assert_dom "> @href", diary_entry_url(diary_entry.user, diary_entry, :anchor => "comment#{diary_comment.id}")
17     end
18   end
19
20   def test_reportable_heading_diary_entry
21     create(:language, :code => "en")
22     diary_entry = create(:diary_entry, :title => "Important Subject", :created_at => "2020-03-24", :updated_at => "2021-05-26")
23
24     heading = reportable_heading diary_entry
25
26     dom_heading = Rails::Dom::Testing.html_document_fragment.parse "<p>#{heading}</p>"
27     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"
28     assert_dom dom_heading, "a", 1 do
29       assert_dom "> @href", diary_entry_url(diary_entry.user, diary_entry)
30     end
31   end
32
33   def test_reportable_heading_note
34     note = create(:note, :created_at => "2020-03-14", :updated_at => "2021-05-16")
35
36     heading = reportable_heading note
37
38     dom_heading = Rails::Dom::Testing.html_document_fragment.parse "<p>#{heading}</p>"
39     assert_dom dom_heading, ":root", "Note ##{note.id} created on 14 March 2020 at 00:00, updated on 16 May 2021 at 00:00"
40     assert_dom dom_heading, "a", 1 do
41       assert_dom "> @href", note_url(note)
42     end
43   end
44
45   def test_reportable_heading_user
46     user = create(:user, :display_name => "Someone", :created_at => "2020-07-18")
47
48     heading = reportable_heading user
49
50     dom_heading = Rails::Dom::Testing.html_document_fragment.parse "<p>#{heading}</p>"
51     assert_dom dom_heading, ":root", "User Someone created on 18 July 2020 at 00:00"
52     assert_dom dom_heading, "a", 1 do
53       assert_dom "> @href", user_url(user)
54     end
55   end
56
57   def test_issues_count
58     target_user = create(:user)
59     self.current_user = create(:moderator_user)
60
61     n = (Settings.max_issues_count - 1)
62     n.times do
63       create(:note_with_comments) do |note|
64         create(:issue, :reportable => note, :reported_user => target_user, :assigned_role => "moderator")
65       end
66     end
67     expected = <<~HTML.delete("\n")
68       <span class="badge count-number">#{n}</span>
69     HTML
70     assert_dom_equal expected, open_issues_count
71
72     n += 1
73     create(:note_with_comments) do |note|
74       create(:issue, :reportable => note, :reported_user => target_user, :assigned_role => "moderator")
75     end
76     expected = <<~HTML.delete("\n")
77       <span class="badge count-number">#{n}+</span>
78     HTML
79     assert_dom_equal expected, open_issues_count
80   end
81 end