Skip to content

Commit 6f73e89

Browse files
author
Hilda Stastna
committed
Add new specs for record_class method for various controllers
1 parent 828d174 commit 6f73e89

9 files changed

+214
-44
lines changed

spec/controllers/ems_cluster_controller_spec.rb

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
describe EmsClusterController do
2-
context "#button" do
2+
describe "#button" do
33
it "when VM Right Size Recommendations is pressed" do
44
controller.params = {:pressed => "vm_right_size"}
55
expect(controller).to receive(:vm_right_size)
@@ -59,6 +59,65 @@
5959
controller.button
6060
expect(controller.send(:flash_errors?)).not_to be_truthy
6161
end
62+
63+
context 'Smart State Analysis' do
64+
let(:cluster) { FactoryBot.create(:ems_cluster) }
65+
let(:vm) { FactoryBot.create(:vm_vmware) }
66+
67+
before do
68+
EvmSpecHelper.create_guid_miq_server_zone
69+
allow(controller).to receive(:assert_privileges)
70+
allow(controller).to receive(:drop_breadcrumb)
71+
allow(controller).to receive(:records_support_feature?).and_return(true)
72+
allow(controller).to receive(:render)
73+
controller.params = {:id => cluster.id.to_s, :miq_grid_checks => vm.id.to_s, :pressed => 'vm_scan' }
74+
end
75+
76+
%w[vms all_vms].each do |display|
77+
before { controller.instance_variable_set(:@display, display) }
78+
79+
it 'initiates SSA for selected VM successfully' do
80+
controller.send(:button)
81+
expect(controller.instance_variable_get(:@record)).to eq(cluster)
82+
expect(controller.instance_variable_get(:@view).db).to eq('Vm')
83+
expect(controller.instance_variable_get(:@flash_array)).to eq([{:message => 'Analysis initiated for 1 VM and Instance from the ManageIQ Database', :level => :success}])
84+
end
85+
end
86+
87+
context 'nested list of Templates' do
88+
let(:template) { FactoryBot.create(:miq_template) }
89+
90+
before { controller.instance_variable_set(:@display, 'miq_templates') }
91+
92+
it 'initiates SSA for selected Template successfully' do
93+
controller.params = {:display => 'miq_templates', :id => cluster.id.to_s}
94+
controller.send(:show)
95+
controller.params = {:id => cluster.id.to_s, :miq_grid_checks => template.id.to_s, :pressed => 'miq_template_scan'}
96+
controller.send(:button)
97+
expect(controller.instance_variable_get(:@record)).to eq(cluster)
98+
expect(controller.instance_variable_get(:@view).db).to eq('MiqTemplate')
99+
expect(controller.instance_variable_get(:@flash_array)).to eq([{:message => 'Analysis initiated for 1 VM and Instance from the ManageIQ Database', :level => :success}])
100+
end
101+
end
102+
103+
context 'list of Clusters' do
104+
before do
105+
login_as FactoryBot.create(:user)
106+
controller.instance_variable_set(:@display, nil)
107+
controller.instance_variable_set(:@lastaction, 'show_list')
108+
controller.params = {:miq_grid_checks => cluster.id.to_s, :pressed => 'ems_cluster_scan'}
109+
end
110+
111+
it 'returns proper record class' do
112+
expect(controller.send(:record_class)).to eq(EmsCluster)
113+
end
114+
115+
it 'initiates SSA for Cluster' do
116+
controller.send(:button)
117+
expect(controller.instance_variable_get(:@flash_array)).to eq([{:message => 'Cluster / Deployment Role: scan successfully initiated', :level => :success}])
118+
end
119+
end
120+
end
62121
end
63122

64123
describe "#show" do

spec/controllers/ems_infra_controller_spec.rb

Lines changed: 49 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
describe EmsInfraController do
22
let!(:server) { EvmSpecHelper.local_miq_server(:zone => zone) }
33
let(:zone) { FactoryBot.build(:zone) }
4-
context "#button" do
4+
5+
describe "#button" do
56
before do
67
stub_user(:features => :all)
78
EvmSpecHelper.create_guid_miq_server_zone
@@ -90,6 +91,40 @@
9091
post :button, :params => {:pressed => "vm_transform_mass", :id => ems_infra.id, :format => :js}
9192
expect(controller.send(:flash_errors?)).not_to be_truthy
9293
end
94+
95+
context 'operations on Clusters, Orchestration Stacks, Datastores of selected Provider' do
96+
before do
97+
controller.params = {:pressed => pressed}
98+
controller.instance_variable_set(:@display, display)
99+
end
100+
101+
context 'SSA on selected Clusters from a nested list' do
102+
let(:pressed) { 'ems_cluster_scan' }
103+
let(:display) { 'ems_clusters' }
104+
105+
it 'returns proper record class' do
106+
expect(controller.send(:record_class)).to eq(EmsCluster)
107+
end
108+
end
109+
110+
context 'retirement for Orchestration Stacks displayed in a nested list' do
111+
let(:pressed) { 'orchestration_stack_retire_now' }
112+
let(:display) { 'orchestration_stacks' }
113+
114+
it 'returns proper record class' do
115+
expect(controller.send(:record_class)).to eq(OrchestrationStack)
116+
end
117+
end
118+
119+
context 'SSA on selected Datastores from a nested list' do
120+
let(:pressed) { 'storage_scan' }
121+
let(:display) { 'storages' }
122+
123+
it 'returns proper record class' do
124+
expect(controller.send(:record_class)).to eq(Storage)
125+
end
126+
end
127+
end
93128
end
94129

95130
describe "#create" do
@@ -404,11 +439,12 @@
404439
it { expect(response.status).to eq(200) }
405440
end
406441

407-
describe "breadcrumbs path on a 'show' page of an Infrastructure Provider accessed from Dashboard maintab" do
442+
context "breadcrumbs path on a 'show' page of an Infrastructure Provider accessed from Dashboard maintab" do
408443
before do
409444
stub_user(:features => :all)
410445
EvmSpecHelper.create_guid_miq_server_zone
411446
end
447+
412448
context "when previous breadcrumbs path contained 'Cloud Providers'" do
413449
it "shows 'Infrastructure Providers -> (Summary)' breadcrumb path" do
414450
ems = FactoryBot.create(:ems_vmware)
@@ -421,9 +457,8 @@
421457
end
422458

423459
describe "#build_credentials" do
424-
before do
425-
@ems = FactoryBot.create(:ems_openstack_infra)
426-
end
460+
before { @ems = FactoryBot.create(:ems_openstack_infra) }
461+
427462
context "#build_credentials only contains credentials that it supports and has a username for in params" do
428463
let(:default_creds) { {:userid => "default_userid", :password => "default_password"} }
429464
let(:amqp_creds) { {:userid => "amqp_userid", :password => "amqp_password"} }
@@ -463,10 +498,8 @@
463498
end
464499
end
465500

466-
describe "SCVMM - create, update, validate, cancel" do
467-
before do
468-
login_as FactoryBot.create(:user, :features => %w(ems_infra_new ems_infra_edit))
469-
end
501+
context "SCVMM - create, update, validate, cancel" do
502+
before { login_as FactoryBot.create(:user, :features => %w[ems_infra_new ems_infra_edit]) }
470503

471504
render_views
472505

@@ -553,10 +586,8 @@
553586
end
554587
end
555588

556-
describe "Openstack - create, update" do
557-
before do
558-
login_as FactoryBot.create(:user, :features => %w(ems_infra_new ems_infra_edit))
559-
end
589+
context "Openstack - create, update" do
590+
before { login_as FactoryBot.create(:user, :features => %w[ems_infra_new ems_infra_edit]) }
560591

561592
render_views
562593

@@ -634,7 +665,7 @@
634665
end
635666
end
636667

637-
describe "Redhat - create, update" do
668+
context "Redhat - create, update" do
638669
before do
639670
login_as FactoryBot.create(:user, :features => %w(ems_infra_new ems_infra_edit))
640671
allow_any_instance_of(ManageIQ::Providers::Redhat::InfraManager)
@@ -737,10 +768,8 @@
737768
end
738769
end
739770

740-
describe "Kubevirt - update" do
741-
before do
742-
login_as FactoryBot.create(:user, :features => %w(ems_infra_new ems_infra_edit))
743-
end
771+
context "Kubevirt - update" do
772+
before { login_as FactoryBot.create(:user, :features => %w[ems_infra_new ems_infra_edit]) }
744773

745774
render_views
746775

@@ -812,10 +841,8 @@
812841
end
813842
end
814843

815-
describe "VMWare - create, update" do
816-
before do
817-
login_as FactoryBot.create(:user, :features => %w(ems_infra_new ems_infra_edit))
818-
end
844+
context "VMWare - create, update" do
845+
before { login_as FactoryBot.create(:user, :features => %w[ems_infra_new ems_infra_edit]) }
819846

820847
render_views
821848

spec/controllers/ems_storage_controller_spec.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,17 @@
4040
expect(assigns(:ems).id).to eq(ems_storage.id)
4141
end
4242
end
43+
44+
describe '#button' do
45+
context 'tagging Cloud Object Store Container' do
46+
before do
47+
controller.params = {:pressed => 'cloud_object_store_container_tag'}
48+
controller.instance_variable_set(:@display, 'cloud_object_store_containers')
49+
end
50+
51+
it 'returns proper record class' do
52+
expect(controller.send(:record_class)).to eq(CloudObjectStoreContainer)
53+
end
54+
end
55+
end
4356
end

spec/controllers/host_controller_spec.rb

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,10 @@
126126
expect(controller.send(:flash_errors?)).not_to be_truthy
127127
end
128128

129+
it 'returns proper record class' do
130+
expect(controller.send(:record_class)).to eq(Host)
131+
end
132+
129133
context 'provisioning VMS displayed through details page of a Host' do
130134
before do
131135
allow(controller).to receive(:process_vm_buttons)
@@ -141,6 +145,32 @@
141145
expect(controller).to receive(:render_or_redirect_partial).with('vm')
142146
controller.send(:button)
143147
end
148+
149+
it 'returns proper record class' do
150+
expect(controller.send(:record_class)).to eq(VmOrTemplate)
151+
end
152+
end
153+
154+
context 'SSA on Templates displayed through details page of a Host' do
155+
before do
156+
controller.params = {:pressed => 'miq_template_scan'}
157+
controller.instance_variable_set(:@display, 'miq_templates')
158+
end
159+
160+
it 'returns proper record class' do
161+
expect(controller.send(:record_class)).to eq(VmOrTemplate)
162+
end
163+
end
164+
165+
context 'SSA on Datastores displayed through details page of a Host' do
166+
before do
167+
controller.params = {:pressed => 'storage_scan'}
168+
controller.instance_variable_set(:@display, 'storages')
169+
end
170+
171+
it 'returns proper record class' do
172+
expect(controller.send(:record_class)).to eq(Storage)
173+
end
144174
end
145175
end
146176

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
describe MiqTemplateController do
2+
it 'returns proper record class' do
3+
expect(controller.send(:record_class)).to eq(MiqTemplate)
4+
end
5+
end

spec/controllers/orchestration_stack_controller_spec.rb

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
describe OrchestrationStackController do
22
let!(:user) { stub_user(:features => :all) }
33

4-
before do
5-
EvmSpecHelper.create_guid_miq_server_zone
6-
end
4+
before { EvmSpecHelper.create_guid_miq_server_zone }
75

86
render_views
97

@@ -229,5 +227,17 @@ def validate_format
229227
expect(controller.send(:flash_errors?)).not_to be_truthy
230228
end
231229
end
230+
231+
it 'returns proper record class' do
232+
expect(controller.send(:record_class)).to eq(OrchestrationStack)
233+
end
234+
235+
context 'Instances displayed through Relationships of Orchestration Stack' do
236+
before { controller.params = {:display => 'instances'} }
237+
238+
it 'returns proper record class' do
239+
expect(controller.send(:record_class)).to eq(VmOrTemplate)
240+
end
241+
end
232242
end
233243
end

spec/controllers/resource_pool_controller_spec.rb

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
describe ResourcePoolController do
2-
context "#button" do
3-
before do
4-
controller.instance_variable_set(:@display, "vms")
5-
end
2+
describe "#button" do
3+
before { controller.instance_variable_set(:@display, "vms") }
64

75
it "when VM Right Size Recommendations is pressed" do
86
controller.params = {:pressed => "vm_right_size"}
@@ -54,6 +52,20 @@
5452
controller.button
5553
expect(controller.send(:flash_errors?)).not_to be_truthy
5654
end
55+
56+
it 'returns proper record class' do
57+
expect(controller.send(:record_class)).to eq(ResourcePool)
58+
end
59+
60+
context 'VMs displayed through Relationships of a Resource Pool' do
61+
%w[all_vms vms].each do |display|
62+
before { controller.params = {:display => display} }
63+
64+
it 'returns proper record class' do
65+
expect(controller.send(:record_class)).to eq(VmOrTemplate)
66+
end
67+
end
68+
end
5769
end
5870

5971
describe "#show" do
@@ -76,6 +88,7 @@
7688

7789
context "Direct VMs" do
7890
let(:url_params) { { :display => "vms" } }
91+
7992
it "renders" do
8093
bypass_rescue
8194
expect(subject).to have_http_status(200)
@@ -84,6 +97,7 @@
8497

8598
context "All VMs" do
8699
let(:url_params) { { :display => "all_vms" } }
100+
87101
it "renders" do
88102
bypass_rescue
89103
expect(subject).to have_http_status(200)
@@ -92,6 +106,7 @@
92106

93107
context "Nested Resource Pools" do
94108
let(:url_params) { { :display => "resource_pools"} }
109+
95110
it "renders" do
96111
bypass_rescue
97112
expect(subject).to have_http_status(200)

0 commit comments

Comments
 (0)