Skip to content

Commit

Permalink
added rspec for magic word <<reset>>
Browse files Browse the repository at this point in the history
  • Loading branch information
yrudman committed May 25, 2018
1 parent c9daba9 commit 8a3fc77
Showing 1 changed file with 51 additions and 0 deletions.
51 changes: 51 additions & 0 deletions spec/lib/vmdb/settings_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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 <<reset>>" 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
Expand Down

0 comments on commit 8a3fc77

Please sign in to comment.