mirror of
https://github.com/opf/openproject.git
synced 2026-06-14 03:30:14 +00:00
feature spec for moving using handler
This commit is contained in:
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user