Тестирование Javascript для имитации перетаскивания списков сортировки JQuery UI

Я пытаюсь написать некоторые тесты Javascript на переднем конце, которые могут проверять функциональность перетаскивания JQuery UI sortable list Я использую в своем веб-приложение. Однако я столкнулся с проблемой в том, что сортируемый список JQuery UI, похоже, не отвечает на симуляцию событий мыши.

Я попробовал несколько методов, чтобы проверить это, но в конце я нашел JQuery собственный модуль моделирования, который, как представляется, обеспечивает необходимую мне функциональность, Однако, когда я запускаю симуляции, сортируемый список не отвечает на событие перетаскивания, но другие компоненты, такие как Draggable, отвечают.

Все это можно легко продемонстрировать с помощью простого моделирования симуляции. Я собрал вместе. В этом примере я встроил плагин jquery.simulate, но изменил функцию перетаскивания, чтобы замедлить события, которые он запускает, чтобы вы могли визуально видеть, что происходит. Как вы увидите, плагин моделирования правильно перемещает элемент списка 1 вниз между пунктами 3 и 4, но когда событие mouseup запускается, элемент просто привязывается к исходной позиции, а не к переупорядочиванию списка. Я подозреваю, что должно быть другое событие, которое ищет библиотека пользовательского интерфейса JQuery, но, к сожалению, я не смог ее найти.

Перейдите в http://jsbin.com/efuyef/7/edit#javascript,live, чтобы увидеть пример, в котором перетаскивается перетаскиваемый список. Просто обновите страницу, чтобы снова запустить симуляцию.

У кого-нибудь есть идеи, как я могу правильно имитировать событие перетаскивания в отсортированном списке? Ваша помощь будет оценена.

Ответ 1

После долгих поисков в Интернете я нашел решение NO для этой проблемы, поэтому я пошел дальше и разработал собственное решение.

Проверьте репозиторий Github для моего плагина JQuery jquery.simulate.drag-sortable.js

Если вы обнаружите какие-либо проблемы с этим, напишите тест, чтобы воспроизвести проблему и разветкить проект или вызвать проблему в Github.