Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/page/component/issuable/sidebar.rb')
-rw-r--r--qa/qa/page/component/issuable/sidebar.rb78
1 files changed, 45 insertions, 33 deletions
diff --git a/qa/qa/page/component/issuable/sidebar.rb b/qa/qa/page/component/issuable/sidebar.rb
index 971e7634f6d..77962570aed 100644
--- a/qa/qa/page/component/issuable/sidebar.rb
+++ b/qa/qa/page/component/issuable/sidebar.rb
@@ -22,20 +22,16 @@ module QA
element :labels_block
end
- base.view 'app/assets/javascripts/vue_shared/components/sidebar/labels_select_vue/dropdown_value.vue' do
- element :selected_label_content
+ base.view 'app/assets/javascripts/vue_shared/components/sidebar/labels_select_vue/dropdown_contents_labels_view.vue' do
+ element :dropdown_input_field
end
- base.view 'app/assets/javascripts/vue_shared/components/sidebar/labels_select_vue/dropdown_contents.vue' do
+ base.view 'app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_contents.vue' do
element :labels_dropdown_content
end
- base.view 'app/assets/javascripts/vue_shared/components/sidebar/labels_select_vue/dropdown_title.vue' do
- element :labels_edit_button
- end
-
- base.view 'app/assets/javascripts/vue_shared/components/sidebar/labels_select_vue/dropdown_contents_labels_view.vue' do
- element :dropdown_input_field
+ base.view 'app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_value.vue' do
+ element :selected_label_content
end
base.view 'app/views/shared/issuable/_sidebar.html.haml' do
@@ -53,7 +49,7 @@ module QA
end
def assign_milestone(milestone)
- within_element(:milestone_block) do
+ wait_milestone_block_finish_loading do
click_element(:edit_link)
click_on(milestone.title)
end
@@ -70,14 +66,14 @@ module QA
end
def has_assignee?(username)
- within_element(:assignee_block) do
- has_text?(username, wait: 1)
+ wait_assignees_block_finish_loading do
+ has_text?(username)
end
end
def has_no_assignee?(username)
- within_element(:assignee_block) do
- has_no_text?(username, wait: 1)
+ wait_assignees_block_finish_loading do
+ has_no_text?(username)
end
end
@@ -88,8 +84,14 @@ module QA
end
def has_label?(label)
- within_element(:labels_block) do
- !!has_element?(:selected_label_content, label_name: label)
+ wait_labels_block_finish_loading do
+ has_element?(:selected_label_content, label_name: label)
+ end
+ end
+
+ def has_no_label?(label)
+ wait_labels_block_finish_loading do
+ has_no_element?(:selected_label_content, label_name: label)
end
end
@@ -103,33 +105,34 @@ module QA
find_element(:more_assignees_link)
end
- def select_labels_and_refresh(labels)
- Support::Retrier.retry_until do
- click_element(:labels_edit_button)
- has_element?(:labels_dropdown_content, text: labels.first)
- end
+ def select_labels(labels)
+ within_element(:labels_block) do
+ click_element(:edit_link)
- labels.each do |label|
- within_element(:labels_dropdown_content) do
- send_keys_to_element(:dropdown_input_field, [label, :enter])
+ labels.each do |label|
+ within_element(:labels_dropdown_content) do
+ fill_element(:dropdown_input_field, label)
+ click_button(text: label)
+ end
end
end
- click_element(:labels_edit_button)
-
- labels.each do |label|
- has_element?(:labels_block, text: label, wait: 0)
- end
-
- refresh
-
- wait_for_requests
+ click_element(:title) # to blur dropdown
end
def toggle_more_assignees_link
click_element(:more_assignees_link)
end
+ # When the labels_widget feature flag is enabled, wait until the labels widget appears
+ def wait_for_labels_widget_feature_flag
+ Support::Retrier.retry_until(max_duration: 60, reload_page: page, retry_on_exception: true, sleep_interval: 5) do
+ within_element(:labels_block) do
+ find_element(:edit_link)
+ end
+ end
+ end
+
private
def wait_assignees_block_finish_loading
@@ -141,6 +144,15 @@ module QA
end
end
+ def wait_labels_block_finish_loading
+ within_element(:labels_block) do
+ wait_until(reload: false, max_duration: 10, sleep_interval: 1) do
+ finished_loading_block?
+ yield
+ end
+ end
+ end
+
def wait_milestone_block_finish_loading
within_element(:milestone_block) do
wait_until(reload: false, max_duration: 10, sleep_interval: 1) do