From 8a3fc77ec8069da3014172301f7854f5f379418b Mon Sep 17 00:00:00 2001 From: Yuri Rudman Date: Mon, 21 May 2018 14:43:59 -0400 Subject: [PATCH] added rspec for magic word <> --- spec/lib/vmdb/settings_spec.rb | 51 ++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/spec/lib/vmdb/settings_spec.rb b/spec/lib/vmdb/settings_spec.rb index a52ef1ee9e98..2b054c8699fd 100644 --- a/spec/lib/vmdb/settings_spec.rb +++ b/spec/lib/vmdb/settings_spec.rb @@ -265,6 +265,57 @@ miq_server.zone.reload expect(miq_server.zone.settings_changes.count).to eq 0 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 + + 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 shared_examples_for "password handling" do