Repository URL to install this package:
|
Version:
1.0.0.pre ▾
|
Then /^I (should|should not) be asked to confirm "([^"]*)" for "([^"]*)"$/ do |maybe, confirmation, title|
selector = "#batch_actions_popover a.batch_action:contains('#{title}')"
selector << "[data-confirm='#{confirmation}']" if maybe == 'should'
verb = maybe == 'should' ? :to : :to_not
expect(page).send verb, have_css(selector)
end
Then /^I (should|should not) see the batch action :([^\s]*) "([^"]*)"$/ do |maybe, sym, title|
selector = ".batch_actions_selector a.batch_action:contains('#{title}')"
selector << "[href='#'][data-action='#{sym}']" if maybe == 'should'
verb = maybe == 'should' ? :to : :to_not
expect(page).send verb, have_css(selector)
end
Then /^the (\d+)(?:st|nd|rd|th) batch action should be "([^"]*)"$/ do |index, title|
batch_action = page.all('.batch_actions_selector a.batch_action')[index.to_i - 1]
expect(batch_action.text).to match title
end
When /^I check the (\d+)(?:st|nd|rd|th) record$/ do |index|
page.all("table.index_table input[type=checkbox]")[index.to_i].set true
end
When /^I toggle the collection selection$/ do
page.find("#collection_selection_toggle_all").click
end
Then /^I should see that the batch action button is disabled$/ do
expect(page).to have_css ".batch_actions_selector .dropdown_menu_button.disabled"
end
Then /^I (should|should not) see the batch action (button|selector)$/ do |maybe, type|
selector = "div.table_tools .batch_actions_selector"
selector << ' .dropdown_menu_button' if maybe == 'should' && type == 'button'
verb = maybe == 'should' ? :to : :to_not
expect(page).send verb, have_css(selector)
end
Then /^I should see the batch action popover exists$/ do
expect(page).to have_css '.batch_actions_selector'
end
Given /^I submit the batch action form with "([^"]*)"$/ do |action|
page.find("#batch_action").set action
form = page.find "#collection_selection"
params = page.all("#main_content input").each_with_object({}) do |input, obj|
key, value = input['name'], input['value']
if key == 'collection_selection[]'
(obj[key] ||= []).push value if input.checked?
else
obj[key] = value
end
end
page.driver.submit form['method'], form['action'], params
end
Then /^I should not see checkboxes in the table$/ do
expect(page).to_not have_css '.paginated_collection table input[type=checkbox]'
end
Then /^I should be show a input with name "([^"]*)" and type "([^"]*)"$/ do |name, type|
selector = ".batch_actions_selector a.batch_action:first"
expect(page.find(selector)["data-inputs"]).to eq "{\"#{name}\":\"#{type}\"}"
end
Then /^I should be show a select with name "([^"]*)" with the values "([^"]*)"$/ do |name, values|
selector = ".batch_actions_selector a.batch_action:first"
expect(JSON[page.find(selector)["data-inputs"]]).to eq Hash[name, values.split(', ')]
end