diff options
Diffstat (limited to 'qa/qa/page/group/members.rb')
-rw-r--r-- | qa/qa/page/group/members.rb | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/qa/qa/page/group/members.rb b/qa/qa/page/group/members.rb new file mode 100644 index 00000000000..dce18ee5c55 --- /dev/null +++ b/qa/qa/page/group/members.rb @@ -0,0 +1,84 @@ +# frozen_string_literal: true + +module QA + module Page + module Group + class Members < Page::Base + include QA::Page::Component::Select2 + include Page::Component::UsersSelect + + view 'app/assets/javascripts/vue_shared/components/remove_member_modal.vue' do + element :remove_member_modal_content + end + + view 'app/views/shared/members/_invite_member.html.haml' do + element :member_select_field + element :invite_member_button + end + + view 'app/views/shared/members/_member.html.haml' do + element :member_row + element :access_level_dropdown + element :delete_member_button + element :developer_access_level_link, 'qa_selector: "#{role.downcase}_access_level_link"' # rubocop:disable QA/ElementWithPattern, Lint/InterpolationCheck + end + + view 'app/views/groups/group_members/index.html.haml' do + element :invite_group_tab + element :groups_list_tab + element :groups_list + end + + view 'app/views/shared/members/_invite_group.html.haml' do + element :group_select_field + element :invite_group_button + end + + view 'app/views/shared/members/_group.html.haml' do + element :group_row + end + + def select_group(group_name) + click_element :group_select_field + search_and_select(group_name) + end + + def invite_group(group_name) + click_element :invite_group_tab + select_group(group_name) + click_element :invite_group_button + end + + def add_member(username) + select_user :member_select_field, username + click_element :invite_member_button + end + + def update_access_level(username, access_level) + within_element(:member_row, text: username) do + click_element :access_level_dropdown + click_element "#{access_level.downcase}_access_level_link" + end + end + + def remove_member(username) + within_element(:member_row, text: username) do + click_element :delete_member_button + end + + within_element(:remove_member_modal_content) do + click_button("Remove member") + end + end + + def has_existing_group_share?(group_name) + click_element :groups_list_tab + + within_element(:groups_list) do + has_element?(:group_row, text: group_name) + end + end + end + end + end +end |