docbrown/spec/services/search/cluster_spec.rb
rhymes e27c9b77a3
Refactor Elasticsearch client access (#6307) [deploy]
* Add Transport module to Search
* Test public methods only
* Add Search::Client with exception handling
* Remove Transport and request do
* Replace SearchClient with Search::Client
2020-02-28 11:38:37 -05:00

78 lines
2.7 KiB
Ruby

require "rails_helper"
RSpec.describe Search::Cluster, type: :service do
describe "::recreate_indexes" do
it "destroys and sets up indexes" do
allow(described_class).to receive(:delete_indexes)
allow(described_class).to receive(:setup_indexes)
described_class.recreate_indexes
expect(described_class).to have_received(:delete_indexes)
expect(described_class).to have_received(:setup_indexes)
end
end
describe "::setup_indexes" do
it "creates, adds aliases and updates mappings for indexes" do
allow(described_class).to receive(:create_indexes)
allow(described_class).to receive(:add_aliases)
allow(described_class).to receive(:update_mappings)
described_class.setup_indexes
expect(described_class).to have_received(:create_indexes)
expect(described_class).to have_received(:add_aliases)
expect(described_class).to have_received(:update_mappings)
end
end
describe "::create_indexes" do
it "calls create_index for each search class" do
allow(Search::Client.indices).to receive(:exists).and_return(false)
described_class::SEARCH_CLASSES.each do |search_class|
allow(search_class).to receive(:create_index)
end
described_class.create_indexes
expect(described_class::SEARCH_CLASSES).to all(have_received(:create_index))
end
end
describe "::delete_indexes" do
it "calls delete_index for each search class" do
allow(Search::Client.indices).to receive(:exists).and_return(true)
described_class::SEARCH_CLASSES.each do |search_class|
allow(search_class).to receive(:delete_index)
end
described_class.delete_indexes
expect(described_class::SEARCH_CLASSES).to all(have_received(:delete_index))
end
end
describe "::add_aliases" do
it "calls add_alias for each search class" do
described_class::SEARCH_CLASSES.each do |search_class|
allow(search_class).to receive(:add_alias)
end
described_class.add_aliases
expect(described_class::SEARCH_CLASSES).to all(have_received(:add_alias))
end
end
describe "::update_mappings" do
it "calls update_mappings for each search class" do
described_class::SEARCH_CLASSES.each do |search_class|
allow(search_class).to receive(:update_mappings)
end
described_class.update_mappings
expect(described_class::SEARCH_CLASSES).to all(have_received(:update_mappings))
end
end
describe "::update_settings" do
it "updates cluster settings" do
described_class.update_settings
cluster_settings = Search::Client.cluster.get_settings
auto_create_setting = cluster_settings.dig("persistent", "action", "auto_create_index")
expect(auto_create_setting).to eq("false")
end
end
end