diff options
Diffstat (limited to 'qa/qa/page/project/settings/advanced.rb')
-rw-r--r-- | qa/qa/page/project/settings/advanced.rb | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/qa/qa/page/project/settings/advanced.rb b/qa/qa/page/project/settings/advanced.rb index 9d8ed132ffd..fcfcecdc183 100644 --- a/qa/qa/page/project/settings/advanced.rb +++ b/qa/qa/page/project/settings/advanced.rb @@ -6,10 +6,11 @@ module QA module Settings class Advanced < Page::Base include QA::Page::Component::ConfirmModal + include QA::Page::Component::DeleteModal include Component::NamespaceSelect - view 'app/assets/javascripts/vue_shared/components/confirm_danger/confirm_danger.vue' do - element :confirm_danger_button + view 'app/assets/javascripts/projects/components/shared/delete_button.vue' do + element :delete_button end view 'app/views/projects/edit.html.haml' do @@ -20,7 +21,6 @@ module QA view 'app/views/projects/settings/_archive.html.haml' do element :archive_project_link element :unarchive_project_link - element :archive_project_content end view 'app/views/projects/_export.html.haml' do @@ -29,6 +29,14 @@ module QA element :export_project_content end + view 'app/views/projects/_transfer.html.haml' do + element :transfer_project_content + end + + view 'app/assets/javascripts/projects/settings/components/transfer_project_form.vue' do + element :transfer_project_button + end + def update_project_path_to(path) fill_project_path(path) click_change_path_button @@ -45,13 +53,16 @@ module QA def transfer_project!(project_name, namespace) QA::Runtime::Logger.info "Transferring project: #{project_name} to namespace: #{namespace}" - click_element_coordinates(:archive_project_content) + scroll_to_transfer_project_content # Workaround for a failure to search when there are no spaces around the / # https://gitlab.com/gitlab-org/gitlab/-/issues/218965 select_namespace(namespace.gsub(%r{([^\s])/([^\s])}, '\1 / \2')) - click_element(:confirm_danger_button) + wait_for_enabled_transfer_project_button + + click_element :transfer_project_button + fill_confirmation_text(project_name) confirm_transfer end @@ -77,6 +88,29 @@ module QA click_element :unarchive_project_link click_confirmation_ok_button end + + def delete_project!(project_name) + click_element :delete_button + fill_confirmation_path(project_name) + wait_for_delete_button_enabled + confirm_delete + end + + private + + def scroll_to_transfer_project_content + retry_until(sleep_interval: 1, message: 'Waiting for transfer project content to display') do + has_element?(:transfer_project_content, wait: 3) + end + + scroll_to_element :transfer_project_content + end + + def wait_for_enabled_transfer_project_button + retry_until(sleep_interval: 1, message: 'Waiting for transfer project button to be enabled') do + has_element?(:transfer_project_button, disabled: false, wait: 3) + end + end end end end |