summaryrefslogtreecommitdiff
path: root/spec/support/shared_examples/dirty_submit_form_shared_examples.rb
diff options
context:
space:
mode:
authorLuke Bennett <lbennett@gitlab.com>2018-10-15 13:36:19 +0000
committerPhil Hughes <me@iamphill.com>2018-10-15 13:36:19 +0000
commit7cf19c0b816bf7bc146a7f634c65d2e7484f26e1 (patch)
tree1fd5af973b40f7793a9824765d961098a1c60faf /spec/support/shared_examples/dirty_submit_form_shared_examples.rb
parent280a132e15c8e1f66487312584e734b108b00df7 (diff)
downloadgitlab-ce-7cf19c0b816bf7bc146a7f634c65d2e7484f26e1.tar.gz
Prioritize group settings, improve panel titles, disable submit without changes
Diffstat (limited to 'spec/support/shared_examples/dirty_submit_form_shared_examples.rb')
-rw-r--r--spec/support/shared_examples/dirty_submit_form_shared_examples.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/support/shared_examples/dirty_submit_form_shared_examples.rb b/spec/support/shared_examples/dirty_submit_form_shared_examples.rb
new file mode 100644
index 00000000000..ba363593120
--- /dev/null
+++ b/spec/support/shared_examples/dirty_submit_form_shared_examples.rb
@@ -0,0 +1,24 @@
+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