1# frozen_string_literal: true 2 3module QA 4 module Page 5 module Group 6 module Settings 7 class General < QA::Page::Base 8 include ::QA::Page::Settings::Common 9 include Page::Component::VisibilitySetting 10 11 view 'app/views/groups/edit.html.haml' do 12 element :permission_lfs_2fa_content 13 element :advanced_settings_content 14 end 15 16 view 'app/views/groups/settings/_permissions.html.haml' do 17 element :save_permissions_changes_button 18 end 19 20 view 'app/views/groups/settings/_general.html.haml' do 21 element :group_name_field 22 element :save_name_visibility_settings_button 23 end 24 25 view 'app/views/groups/settings/_lfs.html.haml' do 26 element :lfs_checkbox 27 end 28 29 view 'app/views/shared/_allow_request_access.html.haml' do 30 element :request_access_checkbox 31 end 32 33 view 'app/views/groups/settings/_two_factor_auth.html.haml' do 34 element :require_2fa_checkbox 35 end 36 37 view 'app/views/groups/settings/_project_creation_level.html.haml' do 38 element :project_creation_level_dropdown 39 end 40 41 view 'app/views/groups/settings/_transfer.html.haml' do 42 element :select_group_dropdown 43 element :transfer_group_button 44 end 45 46 view 'app/helpers/dropdowns_helper.rb' do 47 element :dropdown_input_field 48 element :dropdown_list_content 49 end 50 51 def set_group_name(name) 52 find_element(:group_name_field).send_keys([:command, 'a'], :backspace) 53 find_element(:group_name_field).set name 54 end 55 56 def click_save_name_visibility_settings_button 57 click_element(:save_name_visibility_settings_button) 58 end 59 60 def set_lfs_enabled 61 expand_content(:permission_lfs_2fa_content) 62 check_element(:lfs_checkbox, true) 63 click_element(:save_permissions_changes_button) 64 end 65 66 def set_lfs_disabled 67 expand_content(:permission_lfs_2fa_content) 68 uncheck_element(:lfs_checkbox, true) 69 click_element(:save_permissions_changes_button) 70 end 71 72 def set_request_access_enabled 73 expand_content(:permission_lfs_2fa_content) 74 check_element(:request_access_checkbox, true) 75 click_element(:save_permissions_changes_button) 76 end 77 78 def set_request_access_disabled 79 expand_content(:permission_lfs_2fa_content) 80 uncheck_element(:request_access_checkbox, true) 81 click_element(:save_permissions_changes_button) 82 end 83 84 def set_require_2fa_enabled 85 expand_content(:permission_lfs_2fa_content) 86 check_element(:require_2fa_checkbox, true) 87 click_element(:save_permissions_changes_button) 88 end 89 90 def set_require_2fa_disabled 91 expand_content(:permission_lfs_2fa_content) 92 uncheck_element(:require_2fa_checkbox, true) 93 click_element(:save_permissions_changes_button) 94 end 95 96 def set_project_creation_level(value) 97 expand_content(:permission_lfs_2fa_content) 98 select_element(:project_creation_level_dropdown, value) 99 click_element(:save_permissions_changes_button) 100 end 101 102 def toggle_request_access 103 expand_content(:permission_lfs_2fa_content) 104 105 if find_element(:request_access_checkbox, visible: false).checked? 106 uncheck_element(:request_access_checkbox, true) 107 else 108 check_element(:request_access_checkbox, true) 109 end 110 111 click_element(:save_permissions_changes_button) 112 end 113 114 def transfer_group(target_group) 115 expand_content :advanced_settings_content 116 117 click_element :select_group_dropdown 118 fill_element(:dropdown_input_field, target_group) 119 120 within_element(:dropdown_list_content) do 121 click_on target_group 122 end 123 124 click_element :transfer_group_button 125 end 126 end 127 end 128 end 129 end 130end 131 132QA::Page::Group::Settings::General.prepend_mod_with('Page::Group::Settings::General', namespace: QA) 133