Browse Source

Fixes #5145 - Public Knowledge Base Bread crumbs unexpectly translated

Mantas Masalskis 10 months ago
parent
commit
90f23fd150

+ 1 - 1
app/helpers/knowledge_base_breadcrumb_helper.rb

@@ -32,7 +32,7 @@ module KnowledgeBaseBreadcrumbHelper
   def calculate_breadcrumb_to_category(category)
     return [] if category.blank?
 
-    output = [category]
+    output = [find_category(category)]
 
     parent = category
     while (parent = find_category(parent&.parent_id))

+ 8 - 0
spec/support/knowledge_base_contexts.rb

@@ -21,6 +21,10 @@ RSpec.shared_context 'basic Knowledge Base', current_user_id: 1 do # rubocop:dis
     create(:knowledge_base_category, knowledge_base: knowledge_base)
   end
 
+  let :subcategory do
+    create(:knowledge_base_category, knowledge_base: knowledge_base, parent: category)
+  end
+
   let :other_category do
     create(:knowledge_base_category, knowledge_base: knowledge_base)
   end
@@ -37,6 +41,10 @@ RSpec.shared_context 'basic Knowledge Base', current_user_id: 1 do # rubocop:dis
     create(:knowledge_base_answer, :published, category: other_category)
   end
 
+  let :published_answer_in_subcategory do
+    create(:knowledge_base_answer, :published, category: subcategory)
+  end
+
   let :published_answer_with_video do
     create(:knowledge_base_answer, :published, :with_video, category: category)
   end

+ 24 - 0
spec/system/knowledge_base_public/guest_spec.rb

@@ -58,6 +58,30 @@ RSpec.describe 'Public Knowledge Base for guest', authenticated_as: false, type:
       it { expect(page).to have_breadcrumb_item(knowledge_base.translation.title).at_index(0) }
       it { expect(page).to have_breadcrumb_item(category.translation.title).at_index(1) }
     end
+
+    context 'when looking at translated subcategory' do
+      let(:translated_title) { Faker::Lorem.sentence }
+
+      before do
+        create(:knowledge_base_translation,
+               knowledge_base:, kb_locale: alternative_locale)
+
+        create(:knowledge_base_category_translation,
+               category: category, title:  translated_title, kb_locale: alternative_locale)
+
+        create(:knowledge_base_category_translation,
+               category: subcategory, kb_locale: alternative_locale)
+
+        create(:knowledge_base_answer_translation,
+               answer: published_answer_in_subcategory, kb_locale: alternative_locale)
+
+        visit help_category_path(alternative_locale.system_locale.locale, subcategory)
+      end
+
+      it 'shows translated parent category in breadcrumb' do
+        expect(page).to have_breadcrumb_item(translated_title).at_index(1)
+      end
+    end
   end
 
   context 'answer' do