Project

General

Profile

Download (2.82 KB) Statistics
| Branch: | Tag: | Revision:
require 'test_helper'

class HostgroupIntegrationTest < ActionDispatch::IntegrationTest
test "index page" do
assert_index_page(hostgroups_path,"Host Groups","New Host Group")
end

test "create new page" do
assert_new_button(hostgroups_path,"New Host Group",new_hostgroup_path)
fill_in "hostgroup_name", :with => "staging"
select "production", :from => "hostgroup_environment_id"
assert_submit_button(hostgroups_path)
assert page.has_link? 'staging'
end

test "edit page" do
visit hostgroups_path
click_link "db"
fill_in "hostgroup_name", :with => "db Old"
assert_submit_button(hostgroups_path)
assert page.has_link? 'db Old'
end

test 'edit shows errors on invalid lookup values' do
group = FactoryGirl.create(:hostgroup, :with_puppetclass)
FactoryGirl.create(:puppetclass_lookup_key, :as_smart_class_param, :with_override,
:key_type => 'boolean', :default_value => true,
:puppetclass => group.puppetclasses.first, :overrides => {group.lookup_value_matcher => false})

visit edit_hostgroup_path(group)
assert page.has_link?('Parameters', :href => '#params')
click_link 'Parameters'
assert page.has_no_selector?('#params tr.has-error')

fill_in 'hostgroup_lookup_values_attributes_0_value', :with => 'invalid'
click_button('Submit')
assert page.has_selector?('#params tr.has-error')
end

test 'clone shows no errors on lookup values' do
group = FactoryGirl.create(:hostgroup, :with_puppetclass)
FactoryGirl.create(:puppetclass_lookup_key, :as_smart_class_param, :with_override,
:puppetclass => group.puppetclasses.first, :overrides => {group.lookup_value_matcher => 'test'})

visit clone_hostgroup_path(group)
assert page.has_link?('Parameters', :href => '#params')
click_link 'Parameters'
assert page.has_no_selector?('#params tr.has-error')
end

describe 'JS enabled tests' do
setup do
@old_driver = Capybara.current_driver
Capybara.current_driver = Capybara.javascript_driver
login_admin
end

teardown do
Capybara.current_driver = @old_driver
end

test 'submit updates taxonomy' do
group = FactoryGirl.create(:hostgroup, :with_puppetclass)
new_location = FactoryGirl.create(:location)

visit edit_hostgroup_path(group)
page.find(:css, "a[href='#locations']").click()
select_from_list 'hostgroup_location_ids', new_location

click_button "Submit"
#wait for submit to finish
page.find('#search-form')

group.locations.reload

assert_not_nil group.locations.first{ |l| l.name == new_location.name }
end
end

private

def select_from_list(list_id, item)
span = page.all(:css, "#ms-#{list_id} .ms-selectable ul li span").first{ |i| i.text == item.name }
span.click
end
end
(15-15/36)