diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-12 16:26:10 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-12 16:26:10 +0000 |
commit | 6653ccc011dec86e5140a5d09ea3b2357eab6714 (patch) | |
tree | 897193f37bcd98152a0ac214f80a3c4cfe1047c5 /spec/support/helpers/features/releases_helpers.rb | |
parent | bff35a05aed6a31380a73c39113808fd262c2c37 (diff) | |
download | gitlab-ce-6653ccc011dec86e5140a5d09ea3b2357eab6714.tar.gz |
Add latest changes from gitlab-org/gitlab@13-10-stable-eev13.10.0-rc41
Diffstat (limited to 'spec/support/helpers/features/releases_helpers.rb')
-rw-r--r-- | spec/support/helpers/features/releases_helpers.rb | 105 |
1 files changed, 35 insertions, 70 deletions
diff --git a/spec/support/helpers/features/releases_helpers.rb b/spec/support/helpers/features/releases_helpers.rb index 44087f71cfa..9cce9c4882d 100644 --- a/spec/support/helpers/features/releases_helpers.rb +++ b/spec/support/helpers/features/releases_helpers.rb @@ -1,9 +1,6 @@ # frozen_string_literal: true -# These helpers fill fields on the "New Release" and -# "Edit Release" pages. They use the keyboard to navigate -# from one field to the next and assume that when -# they are called, the field to be filled out is already focused. +# These helpers fill fields on the "New Release" and "Edit Release" pages. # # Usage: # describe "..." do @@ -18,97 +15,65 @@ module Spec module Helpers module Features module ReleasesHelpers - # Returns the element that currently has keyboard focus. - # Reminder that this returns a Selenium::WebDriver::Element - # _not_ a Capybara::Node::Element - def focused_element - page.driver.browser.switch_to.active_element - end - - def fill_tag_name(tag_name, and_tab: true) - expect(focused_element).to eq(find_field('Tag name').native) + def select_new_tag_name(tag_name) + page.within '[data-testid="tag-name-field"]' do + find('button').click - focused_element.send_keys(tag_name) + wait_for_all_requests - focused_element.send_keys(:tab) if and_tab - end + find('input[aria-label="Search or create tag"]').set(tag_name) - def select_create_from(branch_name, and_tab: true) - expect(focused_element).to eq(find('[data-testid="create-from-field"] button').native) + wait_for_all_requests - focused_element.send_keys(:enter) + click_button("Create tag #{tag_name}") + end + end - # Wait for the dropdown to be rendered - page.find('.ref-selector .dropdown-menu') + def select_create_from(branch_name) + page.within '[data-testid="create-from-field"]' do + find('button').click - # Pressing Enter in the search box shouldn't submit the form - focused_element.send_keys(branch_name, :enter) + wait_for_all_requests - # Wait for the search to return - page.find('.ref-selector .dropdown-item', text: branch_name, match: :first) + find('input[aria-label="Search branches, tags, and commits"]').set(branch_name) - focused_element.send_keys(:arrow_down, :enter) + wait_for_all_requests - focused_element.send_keys(:tab) if and_tab + click_button("#{branch_name}") + end end - def fill_release_title(release_title, and_tab: true) - expect(focused_element).to eq(find_field('Release title').native) - - focused_element.send_keys(release_title) - - focused_element.send_keys(:tab) if and_tab + def fill_release_title(release_title) + fill_in('Release title', with: release_title) end - def select_milestone(milestone_title, and_tab: true) - expect(focused_element).to eq(find('[data-testid="milestones-field"] button').native) - - focused_element.send_keys(:enter) + def select_milestone(milestone_title) + page.within '[data-testid="milestones-field"]' do + find('button').click - # Wait for the dropdown to be rendered - page.find('.milestone-combobox .dropdown-menu') + wait_for_all_requests - # Clear any existing input - focused_element.attribute('value').length.times { focused_element.send_keys(:backspace) } + find('input[aria-label="Search Milestones"]').set(milestone_title) - # Pressing Enter in the search box shouldn't submit the form - focused_element.send_keys(milestone_title, :enter) + wait_for_all_requests - # Wait for the search to return - page.find('.milestone-combobox .dropdown-item', text: milestone_title, match: :first) - - focused_element.send_keys(:arrow_down, :arrow_down, :enter) - - focused_element.send_keys(:tab) if and_tab + find('button', text: milestone_title, match: :first).click + end end - def fill_release_notes(release_notes, and_tab: true) - expect(focused_element).to eq(find_field('Release notes').native) - - focused_element.send_keys(release_notes) - - # Tab past the links at the bottom of the editor - focused_element.send_keys(:tab, :tab, :tab) if and_tab + def fill_release_notes(release_notes) + fill_in('Release notes', with: release_notes) end - def fill_asset_link(link, and_tab: true) - expect(focused_element['id']).to start_with('asset-url-') - - focused_element.send_keys(link[:url], :tab, link[:title], :tab, link[:type]) - - # Tab past the "Remove asset link" button - focused_element.send_keys(:tab, :tab) if and_tab + def fill_asset_link(link) + all('input[name="asset-url"]').last.set(link[:url]) + all('input[name="asset-link-name"]').last.set(link[:title]) + all('select[name="asset-type"]').last.find("option[value=\"#{link[:type]}\"").select_option end # Click "Add another link" and tab back to the beginning of the new row def add_another_asset_link - expect(focused_element).to eq(find_button('Add another link').native) - - focused_element.send_keys(:enter, - [:shift, :tab], - [:shift, :tab], - [:shift, :tab], - [:shift, :tab]) + click_button('Add another link') end end end |