gitlab-org--gitlab-foss/spec/support/helpers/drag_to_helper.rb

31 lines
858 B
Ruby
Raw Normal View History

# frozen_string_literal: true
2017-01-06 11:52:18 -05:00
module DragTo
def drag_to(list_from_index: 0, from_index: 0, to_index: 0, list_to_index: 0, selector: '', scrollable: 'body', duration: 1000, perform_drop: true)
js = <<~JS
simulateDrag({
scrollable: document.querySelector('#{scrollable}'),
duration: #{duration},
from: {
el: document.querySelectorAll('#{selector}')[#{list_from_index}],
index: #{from_index}
},
to: {
el: document.querySelectorAll('#{selector}')[#{list_to_index}],
index: #{to_index}
},
performDrop: #{perform_drop}
});
JS
evaluate_script(js)
2017-01-06 11:52:18 -05:00
Timeout.timeout(Capybara.default_max_wait_time) do
2017-04-04 13:47:12 -04:00
loop while drag_active?
2017-01-06 11:52:18 -05:00
end
end
def drag_active?
2017-04-04 13:47:12 -04:00
page.evaluate_script('window.SIMULATE_DRAG_ACTIVE').nonzero?
2017-01-06 11:52:18 -05:00
end
end