From ab5227e8bd1d5d2404c1028800bf40a27e792574 Mon Sep 17 00:00:00 2001 From: evazion Date: Tue, 15 Oct 2019 00:36:22 -0500 Subject: [PATCH] Fix #4193: Wiki tags for related tags are no longer in wiki order. --- app/models/wiki_page.rb | 5 +++-- test/unit/related_tag_query_test.rb | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/models/wiki_page.rb b/app/models/wiki_page.rb index 8e3c50e7e..0e4ffb870 100644 --- a/app/models/wiki_page.rb +++ b/app/models/wiki_page.rb @@ -206,8 +206,9 @@ class WikiPage < ApplicationRecord end def tags - titles = DText.parse_wiki_titles(body) - Tag.nonempty.where(name: titles.uniq).pluck(:name) + titles = DText.parse_wiki_titles(body).uniq + tags = Tag.nonempty.where(name: titles).pluck(:name) + titles & tags end def visible? diff --git a/test/unit/related_tag_query_test.rb b/test/unit/related_tag_query_test.rb index 1059727f4..096bee3ea 100644 --- a/test/unit/related_tag_query_test.rb +++ b/test/unit/related_tag_query_test.rb @@ -91,6 +91,13 @@ class RelatedTagQueryTest < ActiveSupport::TestCase should "find any tags embedded in the wiki page" do assert_equal(["bbb", "ccc"], @query.wiki_page_tags) end + + should "return the tags in the same order as given by the wiki" do + create(:wiki_page, title: "wiki", body: "[[ccc]] [[bbb]] [[ccc]] [[bbb]] [[aaa]]") + + query = RelatedTagQuery.new(query: "wiki") + assert_equal(%w[ccc bbb aaa], query.wiki_page_tags) + end end end