summaryrefslogtreecommitdiff
path: root/qa/qa/page
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/page')
-rw-r--r--qa/qa/page/component/new_snippet.rb5
-rw-r--r--qa/qa/page/component/snippet.rb4
-rw-r--r--qa/qa/page/dashboard/projects.rb14
-rw-r--r--qa/qa/page/dashboard/snippet/edit.rb5
-rw-r--r--qa/qa/page/dashboard/snippet/show.rb2
-rw-r--r--qa/qa/page/file/show.rb13
-rw-r--r--qa/qa/page/group/settings/general.rb10
-rw-r--r--qa/qa/page/main/login.rb5
-rw-r--r--qa/qa/page/merge_request/show.rb8
-rw-r--r--qa/qa/page/modal/delete_issue.rb17
-rw-r--r--qa/qa/page/project/fork/new.rb14
-rw-r--r--qa/qa/page/project/infrastructure/kubernetes/add.rb21
-rw-r--r--qa/qa/page/project/issue/show.rb16
-rw-r--r--qa/qa/page/project/new.rb10
-rw-r--r--qa/qa/page/project/pipeline_editor/new.rb19
-rw-r--r--qa/qa/page/project/pipeline_editor/show.rb20
-rw-r--r--qa/qa/page/project/settings/mirroring_repositories.rb11
-rw-r--r--qa/qa/page/project/show.rb2
-rw-r--r--qa/qa/page/project/web_ide/edit.rb2
-rw-r--r--qa/qa/page/trials/new.rb2
-rw-r--r--qa/qa/page/trials/select.rb11
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