diff --git a/app/models/topic_list.rb b/app/models/topic_list.rb index 1071f573741..6061747eee5 100644 --- a/app/models/topic_list.rb +++ b/app/models/topic_list.rb @@ -78,7 +78,7 @@ class TopicList def categories @categories ||= - topics.map { |t| [t.category, t.category&.parent_category] }.uniq.flatten.compact + topics.map { |t| [t.category&.parent_category, t.category] }.uniq.flatten.compact end def load_topics diff --git a/spec/requests/list_controller_spec.rb b/spec/requests/list_controller_spec.rb index 0565cd53a03..db9d9f02c66 100644 --- a/spec/requests/list_controller_spec.rb +++ b/spec/requests/list_controller_spec.rb @@ -239,9 +239,9 @@ RSpec.describe ListController do expect(response.parsed_body["topic_list"]["topics"].length).to eq(1) expect(response.parsed_body["topic_list"]["topics"][0]["id"]).to eq(topic.id) expect(response.parsed_body["topic_list"]["categories"].length).to eq(2) - expect( - response.parsed_body["topic_list"]["categories"].map { |c| c["id"] }, - ).to contain_exactly(category.id, subcategory.id) + expect(response.parsed_body["topic_list"]["categories"].map { |c| c["id"] }).to eq( + [category.id, subcategory.id], + ) end it "does not return categories if not true" do