search_spec.rb 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
  2. require 'rails_helper'
  3. RSpec.describe Ticket::Search do
  4. describe 'Duplicate results in search #3876' do
  5. let(:search) { SecureRandom.uuid }
  6. let(:ticket) { create(:ticket, group: Group.first) }
  7. let(:articles) { create_list(:ticket_article, 3, ticket: ticket, body: search) }
  8. let(:agent) { create(:agent, groups: Group.all) }
  9. before do
  10. articles
  11. end
  12. it 'does not show up the same ticket twice if no elastic search is configured' do
  13. expect(Ticket.search(current_user: agent, query: search)).to eq([ticket])
  14. end
  15. end
  16. describe 'Language detection mechanism #5476', searchindex: true do
  17. let(:ticket) { create(:ticket, group: Group.first) }
  18. let(:article) { create(:ticket_article, ticket: ticket, detected_language: 'de') }
  19. let(:agent) { create(:agent, groups: Group.all) }
  20. before do
  21. article
  22. searchindex_model_reload([Ticket])
  23. end
  24. shared_examples 'finding the ticket by its article attribute' do
  25. it 'finds the ticket by its article attribute' do
  26. expect(Ticket.search(current_user: agent, query: search)).to eq([ticket])
  27. end
  28. end
  29. context 'with language code' do
  30. let(:search) { 'article.detected_language:de' }
  31. it_behaves_like 'finding the ticket by its article attribute'
  32. end
  33. context 'with language name' do
  34. let(:search) { 'article.detected_language_name:german' }
  35. it_behaves_like 'finding the ticket by its article attribute'
  36. end
  37. end
  38. end