From f24c42bf130ef66fc1a8201e84edc7b5f0ec4715 Mon Sep 17 00:00:00 2001 From: Yuri Rudman Date: Fri, 25 May 2018 17:40:46 -0400 Subject: [PATCH] added rspec for magic word <> --- spec/lib/vmdb/settings_spec.rb | 51 ++++++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/spec/lib/vmdb/settings_spec.rb b/spec/lib/vmdb/settings_spec.rb index 105fbe5e8ba..2b054c8699f 100644 --- a/spec/lib/vmdb/settings_spec.rb +++ b/spec/lib/vmdb/settings_spec.rb @@ -267,19 +267,54 @@ end context "deleting entries" do + let(:server_value) { 1 } + let(:zone_value) { 2 } + let(:region_value) {3} + + let(:reset) { ::Vmdb::Settings::DELETE_COMMAND } + let(:reset_all) { ::Vmdb::Settings::DELETE_ALL_COMMAND } + + let(:second_server) { FactoryGirl.create(:miq_server, :zone => miq_server.zone) } + #let(:zone2) { FactoryGirl.create(:zone) } + #let(:miq_server2) { FactoryGirl.create(:miq_server, :zone => zone2) } + + before do MiqRegion.seed + @settings_from_yaml = Vmdb::Settings.for_resource(miq_server) + expect(@settings_from_yaml.api.token_ttl).to eq "10.minutes" + expect(@settings_from_yaml.session.timeout).to eq 3600 + + described_class.save!(miq_server, :api => {:token_ttl => server_value}, :session => {:timeout => server_value}) + described_class.save!(miq_server, :api => {:new_key => "new value"}) + described_class.save!(second_server, :api => {:token_ttl => server_value}, :session => {:timeout => server_value}) + + described_class.save!(miq_server.zone, :api => {:token_ttl => zone_value}, :session => {:timeout => zone_value}) + described_class.save!(miq_server.miq_region, :api => {:token_ttl => region_value}, :session => {:timeout => region_value}) + expect(SettingsChange.count).to eq 9 end - it "delete key-value from settings on server level if value is <>" do - server_settings = Vmdb::Settings.for_resource(miq_server) - zone_settings = Vmdb::Settings.for_resource(miq_server.zone) - region_settings = Vmdb::Settings.for_resource(miq_server.zone.miq_region) - s_region = server_settings.api.token_ttl - s_zone = zone_settings.api.token_ttl - ss = 6 + context "magic value <>" do + it "deletes key-value if specified on leaf level (while keeping other leafs unchanged)" do + described_class.save!(miq_server, :api => {:token_ttl => reset}) + + expect(SettingsChange.count).to eq 8 + expect(miq_server.settings_changes.find_by(:key => "/api/token_ttl")).to be nil + server_settings = Vmdb::Settings.for_resource(miq_server) + expect(server_settings.api.token_ttl).to eq zone_value + expect(server_settings.api.new_key).to eq "new value" + expect(Vmdb::Settings.for_resource(second_server).api.token_ttl).to eq server_value + end + + it "deletes current node and all sub-nodes if specified on node level ((while keeping other nodes unchanged)" do + described_class.save!(miq_server, :api => reset) + + expect(SettingsChange.count).to eq 7 + expect(miq_server.settings_changes.where("key LIKE ?", "/api%").count).to eq 0 + expect(Vmdb::Settings.for_resource(miq_server).api.new_key).to eq nil + expect(Vmdb::Settings.for_resource(second_server).api.token_ttl).to eq server_value + end end - end end