diff options
Diffstat (limited to 'qa/qa/page')
-rw-r--r-- | qa/qa/page/component/new_snippet.rb | 5 | ||||
-rw-r--r-- | qa/qa/page/component/snippet.rb | 4 | ||||
-rw-r--r-- | qa/qa/page/dashboard/projects.rb | 14 | ||||
-rw-r--r-- | qa/qa/page/dashboard/snippet/edit.rb | 5 | ||||
-rw-r--r-- | qa/qa/page/dashboard/snippet/show.rb | 2 | ||||
-rw-r--r-- | qa/qa/page/file/show.rb | 13 | ||||
-rw-r--r-- | qa/qa/page/group/settings/general.rb | 10 | ||||
-rw-r--r-- | qa/qa/page/main/login.rb | 5 | ||||
-rw-r--r-- | qa/qa/page/merge_request/show.rb | 8 | ||||
-rw-r--r-- | qa/qa/page/modal/delete_issue.rb | 17 | ||||
-rw-r--r-- | qa/qa/page/project/fork/new.rb | 14 | ||||
-rw-r--r-- | qa/qa/page/project/infrastructure/kubernetes/add.rb | 21 | ||||
-rw-r--r-- | qa/qa/page/project/issue/show.rb | 16 | ||||
-rw-r--r-- | qa/qa/page/project/new.rb | 10 | ||||
-rw-r--r-- | qa/qa/page/project/pipeline_editor/new.rb | 19 | ||||
-rw-r--r-- | qa/qa/page/project/pipeline_editor/show.rb | 20 | ||||
-rw-r--r-- | qa/qa/page/project/settings/mirroring_repositories.rb | 11 | ||||
-rw-r--r-- | qa/qa/page/project/show.rb | 2 | ||||
-rw-r--r-- | qa/qa/page/project/web_ide/edit.rb | 2 | ||||
-rw-r--r-- | qa/qa/page/trials/new.rb | 2 | ||||
-rw-r--r-- | qa/qa/page/trials/select.rb | 11 |
21 files changed, 122 insertions, 89 deletions
diff --git a/qa/qa/page/component/new_snippet.rb b/qa/qa/page/component/new_snippet.rb index 673bc7ba44c..6ccf8a4043e 100644 --- a/qa/qa/page/component/new_snippet.rb +++ b/qa/qa/page/component/new_snippet.rb @@ -77,7 +77,10 @@ module QA def click_create_snippet_button wait_until(reload: false) { !find_element(:submit_button).disabled? } - click_element(:submit_button, Page::Dashboard::Snippet::Show) + click_element(:submit_button) + wait_until(reload: false) do + has_no_element?(:snippet_title_field) + end end private diff --git a/qa/qa/page/component/snippet.rb b/qa/qa/page/component/snippet.rb index 34e884f2a08..a8ae706858e 100644 --- a/qa/qa/page/component/snippet.rb +++ b/qa/qa/page/component/snippet.rb @@ -10,7 +10,7 @@ module QA super base.view 'app/assets/javascripts/snippets/components/snippet_title.vue' do - element :snippet_title_content, required: true + element :snippet_title_content end base.view 'app/assets/javascripts/snippets/components/snippet_description_view.vue' do @@ -87,7 +87,7 @@ module QA end def has_snippet_title?(snippet_title) - has_element? :snippet_title_content, text: snippet_title + has_element?(:snippet_title_content, text: snippet_title, wait: 10) end def has_snippet_description?(snippet_description) diff --git a/qa/qa/page/dashboard/projects.rb b/qa/qa/page/dashboard/projects.rb index c0108d85365..a0b42598962 100644 --- a/qa/qa/page/dashboard/projects.rb +++ b/qa/qa/page/dashboard/projects.rb @@ -23,6 +23,12 @@ module QA end end + def filter_by_name(name) + within_element(:project_filter_form) do + fill_in :name, with: name + end + end + def go_to_project(name) filter_by_name(name) @@ -40,14 +46,6 @@ module QA def clear_project_filter fill_element(:project_filter_form, "") end - - private - - def filter_by_name(name) - within_element(:project_filter_form) do - fill_in :name, with: name - end - end end end end diff --git a/qa/qa/page/dashboard/snippet/edit.rb b/qa/qa/page/dashboard/snippet/edit.rb index 939413f6d76..d84a053591c 100644 --- a/qa/qa/page/dashboard/snippet/edit.rb +++ b/qa/qa/page/dashboard/snippet/edit.rb @@ -64,7 +64,10 @@ module QA def save_changes wait_until(reload: false) { !find_element(:submit_button).disabled? } - click_element(:submit_button, Page::Dashboard::Snippet::Show) + click_element(:submit_button) + wait_until(reload: false) do + has_no_element?(:file_name_field) + end end private diff --git a/qa/qa/page/dashboard/snippet/show.rb b/qa/qa/page/dashboard/snippet/show.rb index a314f523108..f395bd4f8cb 100644 --- a/qa/qa/page/dashboard/snippet/show.rb +++ b/qa/qa/page/dashboard/snippet/show.rb @@ -9,7 +9,7 @@ module QA include Page::Component::BlobContent view 'app/assets/javascripts/snippets/components/snippet_title.vue' do - element :snippet_title_content, required: true + element :snippet_title_content end end end diff --git a/qa/qa/page/file/show.rb b/qa/qa/page/file/show.rb index e54c3e0cd07..7d6d81cf869 100644 --- a/qa/qa/page/file/show.rb +++ b/qa/qa/page/file/show.rb @@ -33,15 +33,10 @@ module QA end def click_edit - # TODO: remove this condition and else part once ff :consolidated_edit_button is enabled by default - if has_element?(:action_dropdown) - within_element(:action_dropdown) do - click_button(class: 'dropdown-toggle-split') - click_element(:edit_menu_item) - click_element(:edit_button) - end - else - click_on 'Edit' + within_element(:action_dropdown) do + click_button(class: 'dropdown-toggle-split') + click_element(:edit_menu_item) + click_element(:edit_button) end end diff --git a/qa/qa/page/group/settings/general.rb b/qa/qa/page/group/settings/general.rb index 1877065f478..86585eee121 100644 --- a/qa/qa/page/group/settings/general.rb +++ b/qa/qa/page/group/settings/general.rb @@ -102,16 +102,6 @@ module QA click_element(:save_permissions_changes_button) end - - def transfer_group(target_group, source_group) - expand_content :advanced_settings_content - - select_namespace(target_group) - click_element(:transfer_button) - - fill_confirmation_text(source_group) - confirm_transfer - end end end end diff --git a/qa/qa/page/main/login.rb b/qa/qa/page/main/login.rb index a5bd37be287..c34b8f33a5d 100644 --- a/qa/qa/page/main/login.rb +++ b/qa/qa/page/main/login.rb @@ -4,6 +4,8 @@ module QA module Page module Main class Login < Page::Base + include Layout::Flash + view 'app/views/devise/passwords/edit.html.haml' do element :password_field element :password_confirmation_field @@ -176,6 +178,9 @@ module QA Support::WaitForRequests.wait_for_requests + # For debugging invalid login attempts + has_notice?('Invalid login or password') + Page::Main::Terms.perform do |terms| terms.accept_terms if terms.visible? end diff --git a/qa/qa/page/merge_request/show.rb b/qa/qa/page/merge_request/show.rb index d76dfb295a0..689b3dba286 100644 --- a/qa/qa/page/merge_request/show.rb +++ b/qa/qa/page/merge_request/show.rb @@ -116,7 +116,7 @@ module QA end view 'app/views/projects/merge_requests/_mr_box.html.haml' do - element :title_content + element :title_content, required: true end view 'app/views/projects/merge_requests/_mr_title.html.haml' do @@ -124,9 +124,9 @@ module QA end view 'app/views/projects/merge_requests/show.html.haml' do - element :notes_tab - element :commits_tab - element :diffs_tab + element :notes_tab, required: true + element :commits_tab, required: true + element :diffs_tab, required: true end view 'app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_auto_merge_enabled.vue' do diff --git a/qa/qa/page/modal/delete_issue.rb b/qa/qa/page/modal/delete_issue.rb new file mode 100644 index 00000000000..9b51e969b48 --- /dev/null +++ b/qa/qa/page/modal/delete_issue.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +module QA + module Page + module Modal + class DeleteIssue < Base + view 'app/assets/javascripts/issues/show/components/delete_issue_modal.vue' do + element :confirm_delete_issue_button, required: true + end + + def confirm_delete_issue + click_element :confirm_delete_issue_button + end + end + end + end +end diff --git a/qa/qa/page/project/fork/new.rb b/qa/qa/page/project/fork/new.rb index cd743b648d8..e1b5e47dd0b 100644 --- a/qa/qa/page/project/fork/new.rb +++ b/qa/qa/page/project/fork/new.rb @@ -5,10 +5,6 @@ module QA module Project module Fork class New < Page::Base - view 'app/views/projects/forks/_fork_button.html.haml' do - element :fork_namespace_button - end - view 'app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue' do element :fork_namespace_dropdown element :fork_project_button @@ -16,13 +12,9 @@ module QA end def fork_project(namespace = Runtime::Namespace.path) - if has_element?(:fork_namespace_button, wait: 0) - click_element(:fork_namespace_button, name: namespace) - else - select_element(:fork_namespace_dropdown, namespace) - click_element(:fork_privacy_button, privacy_level: 'public') - click_element(:fork_project_button) - end + select_element(:fork_namespace_dropdown, namespace) + click_element(:fork_privacy_button, privacy_level: 'public') + click_element(:fork_project_button) end def fork_namespace_dropdown_values diff --git a/qa/qa/page/project/infrastructure/kubernetes/add.rb b/qa/qa/page/project/infrastructure/kubernetes/add.rb deleted file mode 100644 index ed9ecb51a46..00000000000 --- a/qa/qa/page/project/infrastructure/kubernetes/add.rb +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true - -module QA - module Page - module Project - module Infrastructure - module Kubernetes - class Add < Page::Base - view 'app/views/clusters/clusters/new.html.haml' do - element :add_existing_cluster_tab - end - - def add_existing_cluster - page.find('.gl-tab-nav-item', text: 'Connect existing cluster').click - end - end - end - end - end - end -end diff --git a/qa/qa/page/project/issue/show.rb b/qa/qa/page/project/issue/show.rb index b37210f4d3f..fe468de60cd 100644 --- a/qa/qa/page/project/issue/show.rb +++ b/qa/qa/page/project/issue/show.rb @@ -18,6 +18,8 @@ module QA view 'app/assets/javascripts/issues/show/components/header_actions.vue' do element :close_issue_button element :reopen_issue_button + element :issue_actions_ellipsis_dropdown + element :delete_issue_button end view 'app/assets/javascripts/related_issues/components/add_issuable_form.vue' do @@ -69,6 +71,20 @@ module QA def has_reopen_issue_button? has_element?(:reopen_issue_button) end + + def has_delete_issue_button? + click_element(:issue_actions_ellipsis_dropdown) + has_element?(:delete_issue_button) + end + + def delete_issue + click_element(:issue_actions_ellipsis_dropdown) + click_element(:delete_issue_button, Page::Modal::DeleteIssue) + + Page::Modal::DeleteIssue.perform(&:confirm_delete_issue) + + wait_for_requests + end end end end diff --git a/qa/qa/page/project/new.rb b/qa/qa/page/project/new.rb index e061bc52abc..340e40127c9 100644 --- a/qa/qa/page/project/new.rb +++ b/qa/qa/page/project/new.rb @@ -13,11 +13,11 @@ module QA view 'app/views/projects/_new_project_fields.html.haml' do element :initialize_with_readme_checkbox - element :project_name, 'text_field :name' # rubocop:disable QA/ElementWithPattern - element :project_path, 'text_field :path' # rubocop:disable QA/ElementWithPattern - element :project_description, 'text_area :description' # rubocop:disable QA/ElementWithPattern - element :project_create_button, "submit _('Create project')" # rubocop:disable QA/ElementWithPattern - element :visibility_radios, 'visibility_level:' # rubocop:disable QA/ElementWithPattern + element :project_name + element :project_path + element :project_description + element :project_create_button + element :visibility_radios end view 'app/views/projects/_new_project_initialize_with_sast.html.haml' do diff --git a/qa/qa/page/project/pipeline_editor/new.rb b/qa/qa/page/project/pipeline_editor/new.rb new file mode 100644 index 00000000000..5d79dd86f2a --- /dev/null +++ b/qa/qa/page/project/pipeline_editor/new.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module QA + module Page + module Project + module PipelineEditor + class New < QA::Page::Base + view 'app/assets/javascripts/pipeline_editor/components/ui/pipeline_editor_empty_state.vue' do + element :create_new_ci_button, required: true + end + + def create_new_ci + click_element(:create_new_ci_button, Page::Project::PipelineEditor::Show) + end + end + end + end + end +end diff --git a/qa/qa/page/project/pipeline_editor/show.rb b/qa/qa/page/project/pipeline_editor/show.rb index 8289039d4c5..caf54a10025 100644 --- a/qa/qa/page/project/pipeline_editor/show.rb +++ b/qa/qa/page/project/pipeline_editor/show.rb @@ -6,13 +6,13 @@ module QA module PipelineEditor class Show < QA::Page::Base view 'app/assets/javascripts/pipeline_editor/components/file_nav/branch_switcher.vue' do - element :branch_selector_button, require: true + element :branch_selector_button, required: true element :branch_menu_item_button element :branch_menu_container end view 'app/assets/javascripts/pipeline_editor/components/commit/commit_form.vue' do - element :target_branch_field, require: true + element :target_branch_field, required: true end view 'app/assets/javascripts/pipeline_editor/components/drawer/pipeline_editor_drawer.vue' do @@ -21,7 +21,7 @@ module QA end view 'app/assets/javascripts/vue_shared/components/source_editor.vue' do - element :source_editor_container, require: true + element :source_editor_container, required: true end view 'app/assets/javascripts/pipeline_editor/components/header/pipeline_status.vue' do @@ -30,6 +30,7 @@ module QA view 'app/assets/javascripts/pipeline_editor/components/commit/commit_form.vue' do element :commit_changes_button + element :new_mr_checkbox end view 'app/assets/javascripts/pipeline_editor/components/header/validation_segment.vue' do @@ -76,6 +77,7 @@ module QA end def submit_changes + Support::Waiter.wait_until { !find_element(:commit_changes_button).disabled? } click_element(:commit_changes_button) wait_for_requests @@ -127,6 +129,18 @@ module QA end end + def has_new_mr_checkbox? + has_element?(:new_mr_checkbox, visible: true) + end + + def has_no_new_mr_checkbox? + has_no_element?(:new_mr_checkbox, visible: true) + end + + def select_new_mr_checkbox + check_element(:new_mr_checkbox, true) + end + private def go_to_tab(name) diff --git a/qa/qa/page/project/settings/mirroring_repositories.rb b/qa/qa/page/project/settings/mirroring_repositories.rb index 582079157f2..501b31f8a95 100644 --- a/qa/qa/page/project/settings/mirroring_repositories.rb +++ b/qa/qa/page/project/settings/mirroring_repositories.rb @@ -87,20 +87,21 @@ module QA end def update(url) - row_index = find_repository_row_index url + row_index = find_repository_row_index(url) within_element_by_index(:mirrored_repository_row, row_index) do # When a repository is first mirrored, the update process might # already be started, so the button is already "clicked" click_element :update_now_button unless has_element? :updating_button end + end - # Wait a few seconds for the sync to occur and then refresh the page - # so that 'last update' shows 'just now' or a period in seconds - sleep 5 + def verify_update(url) refresh - wait_until(max_duration: 180, sleep_interval: 1) do + row_index = find_repository_row_index(url) + + wait_until(sleep_interval: 1) do within_element_by_index(:mirrored_repository_row, row_index) do last_update = find_element(:mirror_last_update_at_cell, wait: 0) last_update.has_text?('just now') || last_update.has_text?('seconds') diff --git a/qa/qa/page/project/show.rb b/qa/qa/page/project/show.rb index 4c9df2716e2..b234a9ba986 100644 --- a/qa/qa/page/project/show.rb +++ b/qa/qa/page/project/show.rb @@ -121,6 +121,8 @@ module QA end def has_file?(name) + return false unless has_element?(:file_tree_table) + within_element(:file_tree_table) do has_element?(:file_name_link, text: name) end diff --git a/qa/qa/page/project/web_ide/edit.rb b/qa/qa/page/project/web_ide/edit.rb index 403c919c6e5..435cc4a717e 100644 --- a/qa/qa/page/project/web_ide/edit.rb +++ b/qa/qa/page/project/web_ide/edit.rb @@ -32,7 +32,7 @@ module QA element :file_template_dropdown end - view 'app/assets/javascripts/ide/components/file_templates/dropdown.vue' do + view 'app/assets/javascripts/ide/components/file_templates/bar.vue' do element :dropdown_filter_input end diff --git a/qa/qa/page/trials/new.rb b/qa/qa/page/trials/new.rb index cd3b145a89e..40f593a7aa7 100644 --- a/qa/qa/page/trials/new.rb +++ b/qa/qa/page/trials/new.rb @@ -12,7 +12,7 @@ module QA select :number_of_employees text_field :telephone_number select :country - select :state, id: 'state' + select :state button :continue end end diff --git a/qa/qa/page/trials/select.rb b/qa/qa/page/trials/select.rb index 3da0fb46322..39ef604a781 100644 --- a/qa/qa/page/trials/select.rb +++ b/qa/qa/page/trials/select.rb @@ -6,12 +6,11 @@ module QA class Select < Chemlab::Page path '/-/trials/select' - # TODO: Supplant with data-qa-selectors - select :subscription_for, id: 'namespace_id' - text_field :new_group_name, id: 'new_group_name' - button :start_your_free_trial, value: 'Start your free trial' - radio :trial_company, id: 'trial_entity_company' - radio :trial_individual, id: 'trial_entity_individual' + select :subscription_for + text_field :new_group_name + button :start_your_free_trial + radio :trial_company + radio :trial_individual end end end |