]> git.openstreetmap.org Git - rails.git/commitdiff
Change issue count logic from (n-1)+ to n+
authorAnton Khorev <tony29@yandex.ru>
Fri, 1 Sep 2023 05:05:01 +0000 (08:05 +0300)
committerAnton Khorev <tony29@yandex.ru>
Fri, 1 Sep 2023 05:05:01 +0000 (08:05 +0300)
app/helpers/issues_helper.rb
config/settings.yml
test/helpers/issues_helper_test.rb [new file with mode: 0644]

index aab742bf5bbb68fe93129ebb831d6d53f35ae485..4538863348c471b66caa19cdeba03d35d0a963d1 100644 (file)
@@ -28,7 +28,7 @@ module IssuesHelper
   def open_issues_count
     count = Issue.visible_to(current_user).open.limit(Settings.max_issues_count).size
     if count >= Settings.max_issues_count
-      tag.span("#{Settings.max_issues_count - 1}+", :class => "badge count-number")
+      tag.span("#{Settings.max_issues_count}+", :class => "badge count-number")
     elsif count.positive?
       tag.span(count, :class => "badge count-number")
     end
index 2274d727c12606cd6294e40b21f38168c97ccf01..0352a85e04a4b646d221a645a0fdb6cc02fc287c 100644 (file)
@@ -43,8 +43,8 @@ max_note_request_area: 25
 default_note_query_limit: 100
 # Maximum limit on the number of notes returned by the note search api method
 max_note_query_limit: 10000
-# Maximum value of open issues counter for moderators, anything equal or over this value "n" is shown as "(n-1)+"
-max_issues_count: 100
+# Maximum value of open issues counter for moderators, anything equal or greater to this value "n" is shown as "n+"
+max_issues_count: 99
 # Zoom level to use for postcode results from the geocoder
 postcode_zoom: 15
 # Timeout for API calls in seconds
diff --git a/test/helpers/issues_helper_test.rb b/test/helpers/issues_helper_test.rb
new file mode 100644 (file)
index 0000000..f0b7c88
--- /dev/null
@@ -0,0 +1,30 @@
+require "test_helper"
+
+class IssuesHelperTest < ActionView::TestCase
+  attr_accessor :current_user
+
+  def test_issues_count
+    target_user = create(:user)
+    self.current_user = create(:moderator_user)
+
+    n = (Settings.max_issues_count - 1)
+    n.times do
+      create(:note_with_comments) do |note|
+        create(:issue, :reportable => note, :reported_user => target_user, :assigned_role => "moderator")
+      end
+    end
+    expected = <<~HTML.delete("\n")
+      <span class="badge count-number">#{n}</span>
+    HTML
+    assert_dom_equal expected, open_issues_count
+
+    n += 1
+    create(:note_with_comments) do |note|
+      create(:issue, :reportable => note, :reported_user => target_user, :assigned_role => "moderator")
+    end
+    expected = <<~HTML.delete("\n")
+      <span class="badge count-number">#{n}+</span>
+    HTML
+    assert_dom_equal expected, open_issues_count
+  end
+end