Skip to content

Commit

Permalink
Disable editing of NetworkProviders except Nuage
Browse files Browse the repository at this point in the history
With this commit we hide option "Edit this Network Provider"
for any other NetworkProvider than Nuage. Editing NetworkProviders
was disabled prior integrating Nuage into MIQ when we accidently
enabled it for all of them. Well not any more, we hide it back for
other providers while keeping it for Nuage.

Signed-off-by: Miha Pleško <miha.plesko@xlab.si>
  • Loading branch information
miha-plesko committed Feb 12, 2018
1 parent 02e1a70 commit 2e3b37f
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 1 deletion.
3 changes: 2 additions & 1 deletion app/helpers/application_helper/button/ems_network.rb
@@ -1,5 +1,6 @@
class ApplicationHelper::Button::EmsNetwork < ApplicationHelper::Button::Basic
def visible?
::Settings.product.nuage
return ::Settings.product.nuage if @record.nil? # add new
@record.class == ManageIQ::Providers::Nuage::NetworkManager # edit existing
end
end
26 changes: 26 additions & 0 deletions spec/helpers/application_helper/toolbar/ems_network_center_spec.rb
@@ -0,0 +1,26 @@
describe ApplicationHelper::Toolbar::EmsNetworkCenter do
let(:ems_network_vmdb) { described_class.definition['ems_network_vmdb'] }
let(:ems_network_vmdb_choice) { ems_network_vmdb.buttons.detect { |b| b[:id] == 'ems_network_vmdb_choice' } }

describe 'Edit this Network Provider' do
let(:button_hash) { ems_network_vmdb_choice[:items].detect { |b| b[:id] == 'ems_network_edit' } }
let(:button_klass) { button_hash[:klass] }
let(:button) { button_klass.new(nil, nil, {}, {}) }
let(:ems_nuage) { FactoryGirl.create(:ems_nuage_network) }
let(:ems_openstack) { FactoryGirl.create(:ems_openstack) }

it 'appropriate button class' do
expect(button_klass).to eq(ApplicationHelper::Button::EmsNetwork)
end

it 'visible for nuage provider' do
button.instance_variable_set(:@record, ems_nuage)
expect(button.visible?).to eq(true)
end

it 'not visible for openstack provider' do
button.instance_variable_set(:@record, ems_openstack)
expect(button.visible?).to eq(false)
end
end
end
@@ -0,0 +1,24 @@
describe ApplicationHelper::Toolbar::EmsNetworksCenter do
let(:ems_network_vmdb) { described_class.definition['ems_network_vmdb'] }
let(:ems_network_vmdb_choice) { ems_network_vmdb.buttons.detect { |b| b[:id] == 'ems_network_vmdb_choice' } }

describe 'Add a New Network Provider' do
let(:button_hash) { ems_network_vmdb_choice[:items].detect { |b| b[:id] == 'ems_network_new' } }
let(:button_klass) { button_hash[:klass] }
let(:button) { button_klass.new(nil, nil, {}, {}) }

it 'appropriate button class' do
expect(button_klass).to eq(ApplicationHelper::Button::EmsNetworkNew)
end

it 'visible when nuage provider enabled' do
allow(::Settings.product).to receive(:nuage).and_return(true)
expect(button.visible?).to eq(true)
end

it 'hidden when nuage provider disabled' do
allow(::Settings.product).to receive(:nuage).and_return(false)
expect(button.visible?).to eq(false)
end
end
end

0 comments on commit 2e3b37f

Please sign in to comment.