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 e84bafa commit f24c42b
Showing 1 changed file with 43 additions and 8 deletions.
51 changes: 43 additions & 8 deletions spec/lib/vmdb/settings_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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 <<delete>>" 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 <<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

Expand Down

0 comments on commit f24c42b

Please sign in to comment.