debian-mirror-gitlab/spec/support/shared_examples/dirty_submit_form_shared_examples.rb
2018-12-13 13:39:08 +05:30

25 lines
752 B
Ruby

shared_examples 'dirty submit form' do |selector_args|
selectors = selector_args.is_a?(Array) ? selector_args : [selector_args]
selectors.each do |selector|
it "disables #{selector[:form]} submit until there are changes", :js do
form = find(selector[:form])
submit = form.first('.js-dirty-submit')
input = form.first(selector[:input])
original_value = input.value
expect(submit.disabled?).to be true
input.set("#{original_value} changes")
form.find('.js-dirty-submit:not([disabled])', match: :first)
expect(submit.disabled?).to be false
input.set(original_value)
form.find('.js-dirty-submit[disabled]', match: :first)
expect(submit.disabled?).to be true
end
end
end