summaryrefslogtreecommitdiff
path: root/spec/support/drag_to_helper.rb
blob: 0c0659d3ecdff8430831dfe553d6e537e4c0e67f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
module DragTo
  def drag_to(list_from_index: 0, from_index: 0, to_index: 0, list_to_index: 0, selector: '', scrollable: 'body')
    evaluate_script("simulateDrag({scrollable: $('#{scrollable}').get(0), from: {el: $('#{selector}').eq(#{list_from_index}).get(0), index: #{from_index}}, to: {el: $('#{selector}').eq(#{list_to_index}).get(0), index: #{to_index}}});")

    Timeout.timeout(Capybara.default_max_wait_time) do
      loop until drag_active?
    end
  end

  def drag_active?
    page.evaluate_script('window.SIMULATE_DRAG_ACTIVE').zero?
  end
end