summaryrefslogtreecommitdiff
path: root/qa/qa/page/component
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-06-18 11:18:50 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-06-18 11:18:50 +0000
commit8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781 (patch)
treea77e7fe7a93de11213032ed4ab1f33a3db51b738 /qa/qa/page/component
parent00b35af3db1abfe813a778f643dad221aad51fca (diff)
downloadgitlab-ce-8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781.tar.gz
Add latest changes from gitlab-org/gitlab@13-1-stable-ee
Diffstat (limited to 'qa/qa/page/component')
-rw-r--r--qa/qa/page/component/issue_board/show.rb138
-rw-r--r--qa/qa/page/component/web_ide/modal/create_new_file.rb19
2 files changed, 157 insertions, 0 deletions
diff --git a/qa/qa/page/component/issue_board/show.rb b/qa/qa/page/component/issue_board/show.rb
new file mode 100644
index 00000000000..0c840eba7ce
--- /dev/null
+++ b/qa/qa/page/component/issue_board/show.rb
@@ -0,0 +1,138 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module Component
+ module IssueBoard
+ class Show < QA::Page::Base
+ view 'app/assets/javascripts/boards/components/board_card.vue' do
+ element :board_card
+ end
+
+ view 'app/assets/javascripts/boards/components/board_form.vue' do
+ element :board_name_field
+ end
+
+ view 'app/assets/javascripts/boards/components/board_list.vue' do
+ element :board_list_cards_area
+ end
+
+ view 'app/assets/javascripts/boards/components/boards_selector.vue' do
+ element :boards_dropdown
+ element :boards_dropdown_content
+ element :create_new_board_button
+ end
+
+ view 'app/assets/javascripts/vue_shared/components/deprecated_modal.vue' do
+ element :save_changes_button
+ end
+
+ view 'app/assets/javascripts/vue_shared/components/sidebar/labels_select/base.vue' do
+ element :labels_dropdown_content
+ end
+
+ view 'app/assets/javascripts/vue_shared/components/sidebar/labels_select/dropdown_title.vue' do
+ element :labels_edit_button
+ end
+
+ view 'app/views/shared/boards/_show.html.haml' do
+ element :boards_list
+ end
+
+ view 'app/views/shared/boards/components/_board.html.haml' do
+ element :board_list
+ element :board_list_header
+ end
+
+ view 'app/assets/javascripts/boards/toggle_focus.js' do
+ element :focus_mode_button
+ end
+
+ # The `focused_board` method does not use `find_element` with an element defined
+ # with the attribute `data-qa-selector` since such element is not unique when the
+ # `is-focused` class is not set, and it was not possible to find a better solution.
+ def focused_board
+ find('.issue-boards-content.js-focus-mode-board.is-focused')
+ end
+
+ def boards_dropdown
+ find_element(:boards_dropdown)
+ end
+
+ def boards_dropdown_content
+ find_element(:boards_dropdown_content)
+ end
+
+ def boards_list_cards_area_with_index(index)
+ wait_boards_list_finish_loading do
+ within_element_by_index(:board_list, index) do
+ find_element(:board_list_cards_area)
+ end
+ end
+ end
+
+ def boards_list_header_with_index(index)
+ wait_boards_list_finish_loading do
+ within_element_by_index(:board_list, index) do
+ find_element(:board_list_header)
+ end
+ end
+ end
+
+ def card_of_list_with_index(index)
+ wait_boards_list_finish_loading do
+ within_element_by_index(:board_list, index) do
+ find_element(:board_card)
+ end
+ end
+ end
+
+ def click_boards_dropdown_button
+ # The dropdown button comes from the `GlDropdown` component of `@gitlab/ui`,
+ # so it wasn't possible to add a `data-qa-selector` to it.
+ find_element(:boards_dropdown).find('button').click
+ end
+
+ def click_focus_mode_button
+ click_element(:focus_mode_button)
+ end
+
+ def configure_by_label(label)
+ click_boards_config_button
+ click_element(:labels_edit_button)
+ find_element(:labels_dropdown_content).find('li', text: label).click
+ click_element(:save_changes_button)
+ wait_boards_list_finish_loading
+ end
+
+ def create_new_board(board_name)
+ click_boards_dropdown_button
+ click_element(:create_new_board_button)
+ set_name(board_name)
+ end
+
+ def has_modal_board_name_field?
+ has_element?(:board_name_field, wait: 1)
+ end
+
+ def set_name(name)
+ find_element(:board_name_field).set(name)
+ click_element(:save_changes_button)
+ end
+
+ private
+
+ def wait_boards_list_finish_loading
+ within_element(:boards_list) do
+ wait_until(reload: false, max_duration: 5, sleep_interval: 1) do
+ finished_loading? && (block_given? ? yield : true)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+QA::Page::Component::IssueBoard::Show.prepend_if_ee('QA::EE::Page::Component::IssueBoard::Show')
diff --git a/qa/qa/page/component/web_ide/modal/create_new_file.rb b/qa/qa/page/component/web_ide/modal/create_new_file.rb
new file mode 100644
index 00000000000..48eb32fefd6
--- /dev/null
+++ b/qa/qa/page/component/web_ide/modal/create_new_file.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module Component
+ module WebIDE
+ module Modal
+ class CreateNewFile < Page::Base
+ view 'app/assets/javascripts/ide/components/new_dropdown/modal.vue' do
+ element :file_name_field, required: true
+ element :new_file_modal, required: true
+ element :template_list, required: true
+ end
+ end
+ end
+ end
+ end
+ end
+end