From 676aef5be6ae7eb3bf18e4abbc295408546c6c8c Mon Sep 17 00:00:00 2001 From: nertc Date: Fri, 5 Jul 2024 19:00:15 +0400 Subject: [PATCH] Order of comments in changeset comments feeds --- .../changeset_comments_controller.rb | 2 +- .../changeset_comments_controller_test.rb | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/controllers/changeset_comments_controller.rb b/app/controllers/changeset_comments_controller.rb index 0b5f6059a..637ac7be6 100644 --- a/app/controllers/changeset_comments_controller.rb +++ b/app/controllers/changeset_comments_controller.rb @@ -18,7 +18,7 @@ class ChangesetCommentsController < ApplicationController changeset = Changeset.find(id) # Return comments for this changeset only - @comments = changeset.comments.includes(:author, :changeset).limit(comments_limit) + @comments = changeset.comments.includes(:author, :changeset).reverse_order.limit(comments_limit) else # Return comments @comments = ChangesetComment.includes(:author, :changeset).where(:visible => true).order("created_at DESC").limit(comments_limit).preload(:changeset) diff --git a/test/controllers/changeset_comments_controller_test.rb b/test/controllers/changeset_comments_controller_test.rb index b18698744..5d0f4b51f 100644 --- a/test/controllers/changeset_comments_controller_test.rb +++ b/test/controllers/changeset_comments_controller_test.rb @@ -46,6 +46,23 @@ class ChangesetCommentsControllerTest < ActionDispatch::IntegrationTest assert_select "item", :count => 3 end end + # Rails::Dom::Testing.html_document_fragment.parse(icons) + # Gets comment Ids from HTML and checks that they are in descending order + + last_comment_id = -1 + assert_select "rss", :count => 1 do + assert_select "description", :count => 3 do |descriptions| + descriptions.children.each do |description| + changeset_dom = Rails::Dom::Testing.html_document_fragment.parse(description.content) + comment = changeset_dom.at_css(".changeset-comment-text") + next unless comment + + id = comment.content.split[-1].to_i + assert_operator id, "<", last_comment_id if last_comment_id != -1 + last_comment_id = id + end + end + end end ## -- 2.39.5