Sha256: 47a6f92a7a2e3a142752c18d708f65c0762b37dbaf8830168873c33fbee12ba2
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
RSpec.describe ActiveAdmin::SortableTable, 'Drag-and-Drop', type: :feature do before do Category.create! Category.create! Category.create! end def ordered_elements Category.order(:position).pluck(:id) end context 'first page' do it 'reorder elements by dragging vertically', js: true do expect(ordered_elements).to eq([1, 2, 3]) visit admin_categories_path expect(visible_elements).to eq([1, 2, 3]) move_higher(2) expect(visible_elements).to eq([2, 1, 3]) expect(ordered_elements).to eq([2, 1, 3]) end end context 'second page' do before do Category.create! Category.create! Category.create! end it 'reorder elements by dragging vertically', js: true do expect(ordered_elements).to eq([1, 2, 3, 4, 5, 6]) visit admin_categories_path(page: 2) expect(visible_elements).to eq([4, 5, 6]) move_higher(5) expect(visible_elements).to eq([5, 4, 6]) expect(ordered_elements).to eq([1, 2, 3, 5, 4, 6]) end end private def visible_elements all('.ui-sortable-handle .col-id').map(&:text).map(&:to_i) end def move_higher(element_id) drag_element(element_id, dy: -200) end def drag_element(element_id, options) wait_for_ajax do options.reverse_merge! moves: 20 page.execute_script(%($("#category_#{element_id} .handle").simulate("drag", #{options.to_json} ))) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activeadmin_sortable_table-1.1.0 | spec/features/drag_and_drop_spec.rb |