searchindex_helper.rb 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. require 'rake'
  2. # if you make changes, then please also change this file 'spec/support/searchindex_backend.rb'
  3. # this is required as long as our test suite is made of RSpec and MiniTest
  4. module SearchindexHelper
  5. def self.included(base)
  6. base.teardown do
  7. next if ENV['ES_URL'].blank?
  8. Rake::Task['searchindex:drop'].execute
  9. end
  10. end
  11. def configure_elasticsearch(required: false)
  12. if ENV['ES_URL'].blank?
  13. return if !required
  14. raise "ERROR: Need ES_URL - hint ES_URL='http://127.0.0.1:9200'"
  15. end
  16. Setting.set('es_url', ENV['ES_URL'])
  17. # Setting.set('es_url', 'http://127.0.0.1:9200')
  18. # Setting.set('es_index', 'estest.local_zammad')
  19. # Setting.set('es_user', 'elasticsearch')
  20. # Setting.set('es_password', 'zammad')
  21. if ENV['ES_INDEX_RAND'].present?
  22. rand_id = ENV.fetch('CI_JOB_ID', "r#{rand(999)}")
  23. test_method_name = method_name.gsub(/[^\w]/, '_')
  24. ENV['ES_INDEX'] = "es_index_#{test_method_name}_#{rand_id}_#{rand(999_999_999)}"
  25. end
  26. if ENV['ES_INDEX'].blank?
  27. raise "ERROR: Need ES_INDEX - hint ES_INDEX='estest.local_zammad'"
  28. end
  29. Setting.set('es_index', ENV['ES_INDEX'])
  30. # set max attachment size in mb
  31. Setting.set('es_attachment_max_size_in_mb', 1)
  32. yield if block_given?
  33. end
  34. def rebuild_searchindex
  35. Rake::Task.clear
  36. Zammad::Application.load_tasks
  37. Rake::Task['searchindex:rebuild'].execute
  38. end
  39. end