diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 11:18:50 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 11:18:50 +0000 |
commit | 8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781 (patch) | |
tree | a77e7fe7a93de11213032ed4ab1f33a3db51b738 /qa/qa/page/component | |
parent | 00b35af3db1abfe813a778f643dad221aad51fca (diff) | |
download | gitlab-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.rb | 138 | ||||
-rw-r--r-- | qa/qa/page/component/web_ide/modal/create_new_file.rb | 19 |
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 |