feature spec for moving using handler

This commit is contained in:
Ivan Kuchin
2025-01-06 14:10:37 +01:00
parent d9e750c28c
commit 1977224f84
4 changed files with 38 additions and 7 deletions
+1
View File
@@ -278,6 +278,7 @@ group :test do
gem "capybara_accessible_selectors", git: "https://github.com/citizensadvice/capybara_accessible_selectors", tag: "v0.12.0"
gem "capybara-screenshot", "~> 1.0.17"
gem "cuprite", "~> 0.15.0"
gem "ferrum", github: "toy/ferrum", ref: "mouse-events-buttons-property-0.15"
gem "rspec-wait"
gem "selenium-devtools"
gem "selenium-webdriver", "~> 4.20"
+12 -5
View File
@@ -58,6 +58,17 @@ GIT
parallel_tests (>= 3.3.0, < 5)
rspec (>= 3.10)
GIT
remote: https://github.com/toy/ferrum.git
revision: 889b29926f017530a0e087b1db0bc02747e437b1
ref: mouse-events-buttons-property-0.15
specs:
ferrum (0.15)
addressable (~> 2.5)
concurrent-ruby (~> 1.1)
webrick (~> 1.7)
websocket-driver (~> 0.7)
PATH
remote: modules/auth_plugins
specs:
@@ -558,11 +569,6 @@ GEM
faraday-net_http (3.4.0)
net-http (>= 0.5.0)
fastimage (2.3.1)
ferrum (0.15)
addressable (~> 2.5)
concurrent-ruby (~> 1.1)
webrick (~> 1.7)
websocket-driver (~> 0.7)
ffi (1.17.1)
flamegraph (0.9.5)
fog-aws (3.30.0)
@@ -1255,6 +1261,7 @@ DEPENDENCIES
escape_utils (~> 1.3)
factory_bot (~> 6.5.0)
factory_bot_rails (~> 6.4.4)
ferrum!
ffi (~> 1.15)
flamegraph
fog-aws
@@ -121,14 +121,20 @@ RSpec.describe "Projects life cycle settings", :js, :with_cuprite, with_flag: {
wait_for_network_idle
definitions_page.expect_listed(["Imagining", "Ready to Initiate", "Initiating", "Ready to Process", "Processing"])
definitions_page.drag_and_drop_list(from: 0, to: 4,
elements: "[data-test-selector=project-life-cycle-step-definition]",
handler: ".DragHandle")
wait_for_network_idle
definitions_page.expect_listed(["Ready to Initiate", "Initiating", "Ready to Process", "Processing", "Imagining"])
definitions_page.reload!
definitions_page.expect_listed(["Imagining", "Ready to Initiate", "Initiating", "Ready to Process", "Processing"])
definitions_page.expect_listed(["Ready to Initiate", "Initiating", "Ready to Process", "Processing", "Imagining"])
# deleting
accept_confirm I18n.t(:text_are_you_sure_with_project_life_cycle_step) do
definitions_page.click_definition_action("Initiating", action: "Delete")
end
definitions_page.expect_listed(["Imagining", "Ready to Initiate", "Ready to Process", "Processing"])
definitions_page.expect_listed(["Ready to Initiate", "Ready to Process", "Processing", "Imagining"])
end
end
end
+17
View File
@@ -104,6 +104,23 @@ module Pages
end
def drag_and_drop_list(from:, to:, elements:, handler:)
if using_cuprite?
drag_and_drop_list_cuprite(from:, to:, elements:, handler:)
else
drag_and_drop_list_selenium(from:, to:, elements:, handler:)
end
end
def drag_and_drop_list_cuprite(from:, to:, elements:, handler:)
list = page.all(elements)
source_handler = list[from].find(handler)
target_handler = list[to].find(handler)
# doesn't scroll
source_handler.native.drag_to(target_handler.native, delay: 0.1)
end
def drag_and_drop_list_selenium(from:, to:, elements:, handler:)
# Wait a bit because drag & drop in selenium is easily offended
sleep 1