Revision 901fe896
Added by Ondřej Pražák over 7 years ago
test/controllers/hosts_controller_test.rb | ||
---|---|---|
end
|
||
end
|
||
|
||
test 'show power status for a host' do
|
||
Host.any_instance.stubs(:supports_power?).returns(true)
|
||
Host.any_instance.stubs(:supports_power_and_running?).returns(true)
|
||
xhr :get, :get_power_state, { :id => @host.id }, set_session_user
|
||
assert_response :success
|
||
response = JSON.parse @response.body
|
||
assert_equal({"id" => @host.id, "state" => "on", "title" => "On"}, response)
|
||
end
|
||
|
||
test 'show power status for a powered off host' do
|
||
Host.any_instance.stubs(:supports_power?).returns(true)
|
||
Host.any_instance.stubs(:supports_power_and_running?).returns(false)
|
||
xhr :get, :get_power_state, { :id => @host.id }, set_session_user
|
||
assert_response :success
|
||
response = JSON.parse @response.body
|
||
assert_equal({"id" => @host.id, "state" => "off", "title" => "Off"}, response)
|
||
end
|
||
|
||
test 'show power status for a host that has no power' do
|
||
Host.any_instance.stubs(:supports_power?).returns(false)
|
||
xhr :get, :get_power_state, { :id => @host.id }, set_session_user
|
||
assert_response :success
|
||
response = JSON.parse @response.body
|
||
assert_equal({"id" => @host.id, "state" => "na", "title" => 'N/A',
|
||
"statusText" => "Power operation are not enabled on this host."}, response)
|
||
end
|
||
|
||
test 'show power status for a host that has an exception' do
|
||
Host.any_instance.stubs(:supports_power?).returns(true)
|
||
Host.any_instance.stubs(:power).raises(::Foreman::Exception.new(N_("Unknown power management support - can't continue")))
|
||
xhr :get, :get_power_state, { :id => @host.id }, set_session_user
|
||
assert_response :success
|
||
response = JSON.parse @response.body
|
||
assert_equal({"id" => @host.id, "state" => "na", "title" => "N/A",
|
||
"statusText" => "Failed to fetch power status ERF42-9958 [Foreman::Exception]: Unknown power management support - can't continue"}, response)
|
||
end
|
||
|
||
test 'do not provide power state on an unknown host' do
|
||
xhr :get, :get_power_state, { :id => 'no-such-host' }, set_session_user
|
||
assert_response :not_found
|
||
end
|
||
|
||
test 'do not provide power state for non ajax requests' do
|
||
get :get_power_state, { :id => @host.id }, set_session_user
|
||
assert_response :method_not_allowed
|
||
end
|
||
|
||
private
|
||
|
||
def initialize_host
|
Also available in: Unified diff
Fixes #14688 - Power status visible on hosts index page