From 22c2387b76ae15ec2c3a15163a61997339790687 Mon Sep 17 00:00:00 2001 From: Justin DiRose Date: Tue, 13 Oct 2020 10:32:22 -0500 Subject: [PATCH] FIX: Topics not always properly shown (#11) There was a bug with the logic in how we were checking for matching tags and categories in KE settings. If only tags were set, topics would not show. --- .../knowledge_explorer_controller.rb | 1 + .../knowledge_explorer_controller_spec.rb | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/app/controllers/knowledge_explorer/knowledge_explorer_controller.rb b/app/controllers/knowledge_explorer/knowledge_explorer_controller.rb index 968da5b..229f73f 100644 --- a/app/controllers/knowledge_explorer/knowledge_explorer_controller.rb +++ b/app/controllers/knowledge_explorer/knowledge_explorer_controller.rb @@ -55,6 +55,7 @@ module KnowledgeExplorer def topic_in_explorer(category, tags) category_match = KnowledgeExplorer::Query.categories.include?(category.to_s) + tags = tags.pluck(:name) tag_match = KnowledgeExplorer::Query.tags.any? { |tag| tags.include?(tag) } category_match || tag_match diff --git a/spec/requests/knowledge_explorer_controller_spec.rb b/spec/requests/knowledge_explorer_controller_spec.rb index 60bbc0f..fe9b251 100644 --- a/spec/requests/knowledge_explorer_controller_spec.rb +++ b/spec/requests/knowledge_explorer_controller_spec.rb @@ -154,6 +154,22 @@ describe KnowledgeExplorer::KnowledgeExplorerController do expect(response.parsed_body['topic']).to be_blank end + + it 'should return a KE topic when only tags are added to settings' do + SiteSetting.knowledge_explorer_categories = nil + + get "/docs.json?topic=#{topic.id}" + + expect(response.parsed_body['topic']['id']).to eq(topic.id) + end + + it 'should return a KE topic when only categories are added to settings' do + SiteSetting.knowledge_explorer_tags = nil + + get "/docs.json?topic=#{topic.id}" + + expect(response.parsed_body['topic']['id']).to eq(topic.id) + end end end end