diff options
Diffstat (limited to 'qa/qa/page/group/show.rb')
-rw-r--r-- | qa/qa/page/group/show.rb | 53 |
1 files changed, 33 insertions, 20 deletions
diff --git a/qa/qa/page/group/show.rb b/qa/qa/page/group/show.rb index f23294145dd..d215518d316 100644 --- a/qa/qa/page/group/show.rb +++ b/qa/qa/page/group/show.rb @@ -2,12 +2,20 @@ module QA module Page module Group class Show < Page::Base - ## - # TODO, define all selectors required by this page object - # - # See gitlab-org/gitlab-qa#154 - # - view 'app/views/groups/show.html.haml' + view 'app/views/groups/show.html.haml' do + element :new_project_or_subgroup_dropdown, '.new-project-subgroup' + element :new_project_or_subgroup_dropdown_toggle, '.dropdown-toggle' + element :new_project_option, /%li.*data:.*value: "new-project"/ + element :new_project_button, /%input.*data:.*action: "new-project"/ + element :new_subgroup_option, /%li.*data:.*value: "new-subgroup"/ + + # data-value and data-action get modified by JS for subgroup + element :new_subgroup_button, /%input.*\.js-new-group-child/ + end + + view 'app/assets/javascripts/groups/constants.js' do + element :no_result_text, 'Sorry, no groups or projects matched your search' + end def go_to_subgroup(name) click_link name @@ -20,35 +28,40 @@ module QA def has_subgroup?(name) filter_by_name(name) - page.has_link?(name) + wait(reload: false) do + return false if page.has_content?('Sorry, no groups or projects matched your search') + + page.has_link?(name) + end end def go_to_new_subgroup - within '.new-project-subgroup' do - # May need to click again because it is possible to click the button quicker than the JS is bound - wait(reload: false) do - find('.dropdown-toggle').click - - page.has_css?("li[data-value='new-subgroup']") - end - find("li[data-value='new-subgroup']").click - end + click_new('subgroup') find("input[data-action='new-subgroup']").click end def go_to_new_project + click_new('project') + + find("input[data-action='new-project']").click + end + + private + + def click_new(kind) within '.new-project-subgroup' do + css = "li[data-value='new-#{kind}']" + # May need to click again because it is possible to click the button quicker than the JS is bound wait(reload: false) do find('.dropdown-toggle').click - page.has_css?("li[data-value='new-project']") + page.has_css?(css) end - find("li[data-value='new-project']").click - end - find("input[data-action='new-project']").click + find(css).click + end end end end |