diff --git a/app/helpers/dropdowns_helper.rb b/app/helpers/dropdowns_helper.rb index 64c5fae7d9698575d665f2b5c6a6a4d9733299ff..772a5f79a4dc69c1e3d8a4b3bc07dc505c7f9103 100644 --- a/app/helpers/dropdowns_helper.rb +++ b/app/helpers/dropdowns_helper.rb @@ -15,7 +15,10 @@ def dropdown_tag(toggle_text, options: {}, &block) dropdown_output = dropdown_toggle_link(toggle_text, data_attr, options) end - dropdown_output << content_tag(:div, class: "dropdown-menu dropdown-select #{options[:dropdown_class] if options.key?(:dropdown_class)}") do + content_tag_options = { class: "dropdown-menu dropdown-select #{options[:dropdown_class] if options.key?(:dropdown_class)}" } + content_tag_options[:data] = { qa_selector: "#{options[:dropdown_qa_selector]}" } if options[:dropdown_qa_selector] + + dropdown_output << content_tag(:div, content_tag_options) do output = [] if options.key?(:title) diff --git a/app/views/projects/protected_tags/_create_protected_tag.html.haml b/app/views/projects/protected_tags/_create_protected_tag.html.haml index 7a7390efe511b577e4291e2e4da3fb63fbf26d46..d19a6401fc8295b705d0603e560ce5c7682b1daa 100644 --- a/app/views/projects/protected_tags/_create_protected_tag.html.haml +++ b/app/views/projects/protected_tags/_create_protected_tag.html.haml @@ -1,8 +1,9 @@ - content_for :create_access_levels do - .create_access_levels-container{ data: { qa_selector: 'access_levels_content' } } + .create_access_levels-container = dropdown_tag('Select', options: { toggle_class: 'js-allowed-to-create wide', dropdown_class: 'dropdown-menu-selectable capitalize-header', + dropdown_qa_selector: 'access_levels_content', data: { field_name: 'protected_tag[create_access_levels_attributes][0][access_level]', input_id: 'create_access_levels_attributes', qa_selector: 'access_levels_dropdown' }}) = render 'projects/protected_tags/shared/create_protected_tag' diff --git a/ee/app/views/projects/protected_tags/ee/_create_protected_tag.html.haml b/ee/app/views/projects/protected_tags/ee/_create_protected_tag.html.haml index 5c2ee16415255e27c4b10052ff1513aa5769b988..ebc712dcaa82b2e1d7ca1c4bbf5ac360c02519b1 100644 --- a/ee/app/views/projects/protected_tags/ee/_create_protected_tag.html.haml +++ b/ee/app/views/projects/protected_tags/ee/_create_protected_tag.html.haml @@ -1,8 +1,9 @@ - content_for :create_access_levels do - .create_access_levels-container{ data: { qa_selector: 'access_levels_content' } } + .create_access_levels-container = dropdown_tag('Select', options: { toggle_class: 'js-allowed-to-create js-multiselect wide', dropdown_class: 'dropdown-menu-user dropdown-menu-selectable capitalize-header', filter: true, + dropdown_qa_selector: 'access_levels_content', data: { input_id: 'create_access_levels_attributes', default_label: 'Select', qa_selector: 'access_levels_dropdown' } }) .form-text.text-muted Only groups that diff --git a/qa/qa/page/project/settings/protected_tags.rb b/qa/qa/page/project/settings/protected_tags.rb index 0b9765dd9eaa362b74e2a0da6ba6cb5acedc1d29..bf8f349cfd58073cdd3f68a43d0d258625e459e1 100644 --- a/qa/qa/page/project/settings/protected_tags.rb +++ b/qa/qa/page/project/settings/protected_tags.rb @@ -26,6 +26,8 @@ def set_tag(tag_name) end def choose_access_level_role(role) + return if find_element(:access_levels_dropdown).text == role + click_element :access_levels_dropdown within_element(:access_levels_content) do click_on role