summaryrefslogtreecommitdiff
path: root/spec/support/helpers/select2_helper.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support/helpers/select2_helper.rb')
-rw-r--r--spec/support/helpers/select2_helper.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/support/helpers/select2_helper.rb b/spec/support/helpers/select2_helper.rb
new file mode 100644
index 00000000000..90618ba5b19
--- /dev/null
+++ b/spec/support/helpers/select2_helper.rb
@@ -0,0 +1,35 @@
+# Select2 ajax programmatic helper
+# It allows you to select value from select2
+#
+# Params
+# value - real value of selected item
+# opts - options containing css selector
+#
+# Usage:
+#
+# select2(2, from: '#user_ids')
+#
+
+module Select2Helper
+ def select2(value, options = {})
+ raise ArgumentError, 'options must be a Hash' unless options.is_a?(Hash)
+
+ selector = options.fetch(:from)
+
+ first(selector, visible: false)
+
+ if options[:multiple]
+ execute_script("$('#{selector}').select2('val', ['#{value}']).trigger('change');")
+ else
+ execute_script("$('#{selector}').select2('val', '#{value}').trigger('change');")
+ end
+ end
+
+ def open_select2(selector)
+ execute_script("$('#{selector}').select2('open');")
+ end
+
+ def scroll_select2_to_bottom(selector)
+ evaluate_script "$('#{selector}').scrollTop($('#{selector}')[0].scrollHeight); $('#{selector}');"
+ end
+end