summaryrefslogtreecommitdiff
path: root/qa/qa/page/group/sub_menus/members.rb
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/page/group/sub_menus/members.rb')
-rw-r--r--qa/qa/page/group/sub_menus/members.rb48
1 files changed, 48 insertions, 0 deletions
diff --git a/qa/qa/page/group/sub_menus/members.rb b/qa/qa/page/group/sub_menus/members.rb
new file mode 100644
index 00000000000..c8b3f5bb422
--- /dev/null
+++ b/qa/qa/page/group/sub_menus/members.rb
@@ -0,0 +1,48 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module Group
+ module SubMenus
+ class Members < Page::Base
+ include Page::Component::UsersSelect
+
+ view 'app/views/groups/group_members/_new_group_member.html.haml' do
+ element :add_to_group_button
+ end
+
+ view 'app/helpers/groups/group_members_helper.rb' do
+ element :member_select_field
+ 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
+
+ def add_member(username)
+ select_user :member_select_field, username
+ click_element :add_to_group_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)
+ page.accept_confirm do
+ within_element(:member_row, text: username) do
+ click_element :delete_member_button
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end