From: Anton Khorev Date: Fri, 1 Sep 2023 05:05:01 +0000 (+0300) Subject: Change issue count logic from (n-1)+ to n+ X-Git-Tag: live~947^2~1 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/963b8f43f155b19096ffc2888deea105a7ec569a Change issue count logic from (n-1)+ to n+ --- diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index aab742bf5..453886334 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -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 diff --git a/config/settings.yml b/config/settings.yml index 2274d727c..0352a85e0 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -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 index 000000000..f0b7c884a --- /dev/null +++ b/test/helpers/issues_helper_test.rb @@ -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") + #{n} + 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") + #{n}+ + HTML + assert_dom_equal expected, open_issues_count + end +end