]> git.openstreetmap.org Git - rails.git/blob - test/helpers/issues_helper_test.rb
Merge pull request #6394 from openstreetmap/dependabot/github_actions/ruby/setup...
[rails.git] / test / helpers / issues_helper_test.rb
1 # frozen_string_literal: true
2
3 require "test_helper"
4
5 class IssuesHelperTest < ActionView::TestCase
6   attr_accessor :current_user
7
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")
12
13     heading = reportable_heading diary_comment
14
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}")
19     end
20   end
21
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")
25
26     heading = reportable_heading diary_entry
27
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)
32     end
33   end
34
35   def test_reportable_heading_note
36     note = create(:note, :created_at => "2020-03-14", :updated_at => "2021-05-16")
37
38     heading = reportable_heading note
39
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)
44     end
45   end
46
47   def test_reportable_heading_user
48     user = create(:user, :display_name => "Someone", :created_at => "2020-07-18")
49
50     heading = reportable_heading user
51
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)
56     end
57   end
58
59   def test_issues_count
60     target_user = create(:user)
61     self.current_user = create(:moderator_user)
62
63     n = (Settings.max_issues_count - 1)
64     n.times do
65       create(:note_with_comments) do |note|
66         create(:issue, :reportable => note, :reported_user => target_user, :assigned_role => "moderator")
67       end
68     end
69     expected = <<~HTML.delete("\n")
70       <span class="badge count-number">#{n}</span>
71     HTML
72     assert_dom_equal expected, open_issues_count
73
74     n += 1
75     create(:note_with_comments) do |note|
76       create(:issue, :reportable => note, :reported_user => target_user, :assigned_role => "moderator")
77     end
78     expected = <<~HTML.delete("\n")
79       <span class="badge count-number">#{n}+</span>
80     HTML
81     assert_dom_equal expected, open_issues_count
82   end
83 end