Standardize usage of `click_` and `go_to` on GUI tests

This MR addresses the following issue:
https://gitlab.com/gitlab-org/gitlab-ce/issues/57043
Based on the following comment:
https://gitlab.com/gitlab-org/gitlab-ce/issues/57043#note_136663994
This commit is contained in:
Walmyr 2019-03-28 14:19:32 +00:00 committed by Rémy Coutable
parent a85fd76f52
commit 2ace53feac
55 changed files with 84 additions and 90 deletions

View File

@ -19,11 +19,13 @@ module QA
has_filtered_group?(name)
end
def go_to_group(name)
def click_group(name)
raise "Group with name #{name} not found!" unless has_group?(name)
click_link name
end
def go_to_new_group
def click_new_group
click_on 'New group'
end
end

View File

@ -37,7 +37,7 @@ module QA
text_area.set content
end
def create_snippet
def click_create_snippet_button
click_element :create_snippet_button
end

View File

@ -18,7 +18,7 @@ module QA
element :no_result_text, 'No groups or projects matched your search' # rubocop:disable QA/ElementWithPattern
end
def go_to_subgroup(name)
def click_subgroup(name)
click_link name
end

View File

@ -18,7 +18,7 @@ module QA
element :label_svg
end
def go_to_new_label
def click_new_label_button
# The 'labels.svg' takes a fraction of a second to load after which the "New label" button shifts up a bit
# This can cause webdriver to miss the hit so we wait for the svg to load (implicitly with has_element?)
# before clicking the button.

View File

@ -9,7 +9,7 @@ module QA
element :label_create_button
end
def create_label
def click_label_create_button
click_element :label_create_button
end

View File

@ -47,7 +47,7 @@ module QA
end
end
def go_to_admin_area
def click_admin_area
within_top_menu { click_element :admin_area_link }
end
@ -57,7 +57,7 @@ module QA
end
end
def go_to_profile_settings
def click_settings_link
retry_until(reload: false) do
within_user_menu do
click_link 'Settings'
@ -67,7 +67,7 @@ module QA
end
end
def go_to_snippets
def click_snippets_link
click_element :snippets_link
end

View File

@ -145,11 +145,11 @@ module QA
click_element :squash_checkbox
end
def go_to_discussions_tab
def click_discussions_tab
click_element :notes_tab
end
def go_to_diffs_tab
def click_diffs_tab
click_element :diffs_tab
end

View File

@ -26,7 +26,7 @@ module QA
check_element(:api_radio)
end
def create_token
def click_create_token_button
click_element(:create_token_button)
end

View File

@ -7,7 +7,7 @@ module QA
element :issue_link, 'link_to issue.title' # rubocop:disable QA/ElementWithPattern
end
def go_to_issue(title)
def click_issue_link(title)
click_link(title)
end
end

View File

@ -17,7 +17,7 @@ module QA
fill_element :milestone_description, description
end
def create_new_milestone
def click_milestone_create_button
click_element :milestone_create_button
end
end

View File

@ -35,7 +35,7 @@ module QA
end
end
def go_to_import_project
def click_import_project
click_on 'Import project'
end
@ -51,7 +51,7 @@ module QA
click_on 'Create project'
end
def go_to_create_from_template
def click_create_from_template_tab
click_element(:project_create_from_template_tab)
end
@ -59,7 +59,7 @@ module QA
choose visibility
end
def go_to_github_import
def click_github_link
click_link 'GitHub'
end
end

View File

@ -10,7 +10,7 @@ module QA
element :environment_link
end
def go_to_environment(environment_name)
def click_environment_link(environment_name)
wait(reload: false) do
find(element_selector_css(:environment_link), text: environment_name).click
end

View File

@ -5,7 +5,7 @@ module QA::Page
element :pipeline_link, 'class="js-pipeline-url-link"' # rubocop:disable QA/ElementWithPattern
end
def go_to_latest_pipeline
def click_on_latest_pipeline
css = '.js-pipeline-url-link'
link = wait(reload: false) do

View File

@ -42,11 +42,11 @@ module QA::Page
end
end
def go_to_job(job_name)
def click_job(job_name)
find_element(:job_link, text: job_name).click
end
def go_to_first_job
def click_on_first_job
css = '.js-pipeline-graph-job-link'
wait(reload: false) do

View File

@ -32,22 +32,22 @@ module QA
end
def allow_no_one_to_push
click_allow(:push, 'No one')
go_to_allow(:push, 'No one')
end
def allow_devs_and_maintainers_to_push
click_allow(:push, 'Developers + Maintainers')
go_to_allow(:push, 'Developers + Maintainers')
end
# @deprecated
alias_method :allow_devs_and_masters_to_push, :allow_devs_and_maintainers_to_push
def allow_no_one_to_merge
click_allow(:merge, 'No one')
go_to_allow(:merge, 'No one')
end
def allow_devs_and_maintainers_to_merge
click_allow(:merge, 'Developers + Maintainers')
go_to_allow(:merge, 'Developers + Maintainers')
end
# @deprecated
@ -59,7 +59,7 @@ module QA
private
def click_allow(action, text)
def go_to_allow(action, text)
click_element :"allowed_to_#{action}_select"
within_element(:"allowed_to_#{action}_dropdown") do

View File

@ -76,13 +76,13 @@ module QA
click_on 'Fork'
end
def go_to_file(filename)
def click_file(filename)
within_element(:file_tree) do
click_on filename
end
end
def go_to_commit(commit_msg)
def click_commit(commit_msg)
within_element(:file_tree) do
click_on commit_msg
end

View File

@ -14,7 +14,7 @@ module QA
end
end
def click_operations_environments
def go_to_operations_environments
hover_operations do
within_submenu do
click_element(:operations_environments_link)
@ -22,7 +22,7 @@ module QA
end
end
def click_operations_kubernetes
def go_to_operations_kubernetes
hover_operations do
within_submenu do
click_link('Kubernetes')

View File

@ -20,7 +20,7 @@ module QA
end
end
def click_repository_branches
def go_to_repository_branches
hover_repository do
within_submenu do
click_element(:branches_link)

View File

@ -14,7 +14,7 @@ module QA
end
end
def click_ci_cd_settings
def go_to_ci_cd_settings
hover_settings do
within_submenu do
click_link('CI / CD')
@ -22,7 +22,7 @@ module QA
end
end
def click_members_settings
def go_to_members_settings
hover_settings do
within_submenu do
click_element :link_members_settings
@ -30,7 +30,7 @@ module QA
end
end
def click_repository_settings
def go_to_repository_settings
hover_settings do
within_submenu do
click_link('Repository')
@ -38,7 +38,7 @@ module QA
end
end
def go_to_settings
def click_settings
within_sidebar do
click_on 'Settings'
end

View File

@ -9,15 +9,7 @@ module QA
element :edit_page_link, 'Edit' # rubocop:disable QA/ElementWithPattern
end
def go_to_new_page
click_on 'New page'
end
def got_to_view_history_page
click_on 'Page history'
end
def go_to_edit_page
def click_edit
click_on 'Edit'
end
end

View File

@ -23,7 +23,7 @@ module QA
element :svg_content
end
def go_to_create_first_page
def click_create_your_first_page_button
# The svg takes a fraction of a second to load after which the
# "Create your first page" button shifts up a bit. This can cause
# webdriver to miss the hit so we wait for the svg to load before

View File

@ -11,7 +11,7 @@ module QA
element :clone_repository_link, 'Clone repository' # rubocop:disable QA/ElementWithPattern
end
def go_to_clone_repository
def click_clone_repository
click_on 'Clone repository'
end
end

View File

@ -46,7 +46,7 @@ module QA
# to `allow_to_push` variable.
return branch unless @protected
Page::Project::Menu.perform(&:click_repository_settings)
Page::Project::Menu.perform(&:go_to_repository_settings)
Page::Project::Settings::Repository.perform do |setting|
setting.expand_protected_branches do |page|

View File

@ -15,7 +15,7 @@ module QA
def fabricate!
project.visit!
Page::Project::Menu.perform(&:click_ci_cd_settings)
Page::Project::Menu.perform(&:go_to_ci_cd_settings)
Page::Project::Settings::CICD.perform do |setting|
setting.expand_ci_variables do |page|

View File

@ -23,7 +23,7 @@ module QA
def fabricate!
project.visit!
Page::Project::Menu.perform(&:click_repository_settings)
Page::Project::Menu.perform(&:go_to_repository_settings)
Page::Project::Settings::Repository.perform do |setting|
setting.expand_deploy_keys do |page|

View File

@ -32,7 +32,7 @@ module QA
project.visit!
Page::Project::Menu.act do
click_repository_settings
go_to_repository_settings
end
Page::Project::Settings::Repository.perform do |setting|

View File

@ -21,7 +21,7 @@ module QA
Page::Group::Show.perform do |group_show|
if group_show.has_subgroup?(path)
group_show.go_to_subgroup(path)
group_show.click_subgroup(path)
else
group_show.go_to_new_subgroup

View File

@ -16,7 +16,7 @@ module QA
@project.visit!
Page::Project::Menu.perform(
&:click_operations_kubernetes)
&:go_to_operations_kubernetes)
Page::Project::Operations::Kubernetes::Index.perform(
&:add_kubernetes_cluster)

View File

@ -25,13 +25,13 @@ module QA
project.visit!
Page::Project::Menu.perform(&:go_to_labels)
Page::Label::Index.perform(&:go_to_new_label)
Page::Label::Index.perform(&:click_new_label_button)
Page::Label::New.perform do |page|
page.fill_title(@title)
page.fill_description(@description)
page.fill_color(@color)
page.create_label
page.click_label_create_button
end
end
end

View File

@ -13,13 +13,13 @@ module QA
end
def fabricate!
Page::Main::Menu.perform(&:go_to_profile_settings)
Page::Main::Menu.perform(&:click_settings_link)
Page::Profile::Menu.perform(&:click_access_tokens)
Page::Profile::PersonalAccessTokens.perform do |page|
page.fill_token_name(name || 'api-test-token')
page.check_api
page.create_token
page.click_create_token_button
end
end
end

View File

@ -18,11 +18,11 @@ module QA
Page::Group::Show.perform(&:go_to_new_project)
Page::Project::New.perform do |page|
page.go_to_import_project
page.click_import_project
end
Page::Project::New.perform do |page|
page.go_to_github_import
page.click_github_link
end
Page::Project::Import::Github.perform do |page|

View File

@ -28,7 +28,7 @@ module QA
Page::Project::Milestone::New.perform do |milestone_new|
milestone_new.set_title(@title)
milestone_new.set_description(@description)
milestone_new.create_new_milestone
milestone_new.click_milestone_create_button
end
end
end

View File

@ -24,7 +24,7 @@ module QA
@repository_http_uri ||= begin
wiki.visit!
Page::Project::Wiki::Show.act do
go_to_clone_repository
click_clone_repository
choose_repository_clone_http
repository_location.uri
end

View File

@ -29,7 +29,7 @@ module QA
def fabricate!
project.visit!
Page::Project::Menu.perform(&:click_ci_cd_settings)
Page::Project::Menu.perform(&:go_to_ci_cd_settings)
Service::Runner.new(name).tap do |runner|
Page::Project::Settings::CICD.perform do |settings|

View File

@ -20,9 +20,9 @@ module QA
Page::Dashboard::Groups.perform do |page|
if page.has_group?(path)
page.go_to_group(path)
page.click_group(path)
else
page.go_to_new_group
page.click_new_group
Page::Group::New.perform do |group|
group.set_path(path)

View File

@ -8,7 +8,7 @@ module QA
raise ArgumentError unless traits.include?(:enabled)
Page::Main::Login.perform(&:sign_in_using_credentials)
Page::Main::Menu.perform(&:go_to_admin_area)
Page::Main::Menu.perform(&:click_admin_area)
Page::Admin::Menu.perform(&:go_to_repository_settings)
Page::Admin::Settings::Repository.perform do |setting|

View File

@ -22,7 +22,7 @@ module QA
page.set_visibility(@visibility)
page.fill_file_name(@file_name)
page.fill_file_content(@file_content)
page.create_snippet
page.click_create_snippet_button
end
end
end

View File

@ -14,7 +14,7 @@ module QA
end
def fabricate!
Page::Main::Menu.perform(&:go_to_profile_settings)
Page::Main::Menu.perform(&:click_settings_link)
Page::Profile::Menu.perform(&:click_ssh_keys)
Page::Profile::SSHKeys.perform do |page|

View File

@ -18,7 +18,7 @@ module QA
Page::Project::Menu.perform { |menu_side| menu_side.click_wiki }
Page::Project::Wiki::New.perform do |wiki_new|
wiki_new.go_to_create_first_page
wiki_new.click_create_your_first_page_button
wiki_new.set_title(@title)
wiki_new.set_content(@content)
wiki_new.set_message(@message)

View File

@ -14,7 +14,7 @@ module QA
end
project.visit!
Page::Project::Menu.perform(&:click_members_settings)
Page::Project::Menu.perform(&:go_to_members_settings)
Page::Project::Settings::Members.perform do |page|
page.add_member(user.username)
end

View File

@ -12,7 +12,7 @@ module QA
end
project.visit!
Page::Project::Menu.perform(&:go_to_settings)
Page::Project::Menu.perform(&:click_settings)
Page::Project::Settings::MergeRequest.perform(&:enable_ff_only)
merge_request = Resource::MergeRequest.fabricate! do |merge_request|

View File

@ -57,7 +57,7 @@ module QA
end
it 'branches are correctly listed after CRUD operations' do
Page::Project::Menu.perform(&:click_repository_branches)
Page::Project::Menu.perform(&:go_to_repository_branches)
expect(page).to have_content(master_branch)
expect(page).to have_content(second_branch)

View File

@ -16,7 +16,7 @@ module QA
expect(page).to have_content("Title: #{key_title}")
expect(page).to have_content(key.fingerprint)
Page::Main::Menu.act { go_to_profile_settings }
Page::Main::Menu.act { click_settings_link }
Page::Profile::Menu.act { click_ssh_keys }
Page::Profile::SSHKeys.perform do |ssh_keys|

View File

@ -31,7 +31,7 @@ module QA
# Remove the SSH key
login
Page::Main::Menu.perform(&:go_to_profile_settings)
Page::Main::Menu.perform(&:click_settings_link)
Page::Profile::Menu.perform(&:click_ssh_keys)
Page::Profile::SSHKeys.perform do |ssh_keys|
ssh_keys.remove_key(key_title)

View File

@ -21,7 +21,7 @@ module QA
end
source_project_push.project.visit!
Page::Project::Menu.perform(&:click_repository_settings)
Page::Project::Menu.perform(&:go_to_repository_settings)
Page::Project::Settings::Repository.perform do |settings|
settings.expand_mirroring_repositories do |mirror_settings|
# Configure the source project to push to the target project

View File

@ -45,7 +45,7 @@ module QA
end
def set_file_size_limit(limit)
Page::Main::Menu.perform(&:go_to_admin_area)
Page::Main::Menu.perform(&:click_admin_area)
Page::Admin::Menu.perform(&:go_to_general_settings)
Page::Admin::Settings::General.perform do |setting|

View File

@ -28,7 +28,7 @@ module QA
expect(page).to have_content('README.md')
expect(page).to have_content('Test Use SSH Key')
Page::Main::Menu.perform(&:go_to_profile_settings)
Page::Main::Menu.perform(&:click_settings_link)
Page::Profile::Menu.perform(&:click_ssh_keys)
Page::Profile::SSHKeys.perform do |ssh_keys|

View File

@ -33,7 +33,7 @@ module QA
def view_commit
@project.visit!
Page::Project::Show.perform do |page|
page.go_to_commit(@commit_message)
page.click_commit(@commit_message)
end
end

View File

@ -7,7 +7,7 @@ module QA
Runtime::Browser.visit(:gitlab, Page::Main::Login)
Page::Main::Login.perform(&:sign_in_using_credentials)
Page::Main::Menu.perform(&:go_to_snippets)
Page::Main::Menu.perform(&:click_snippets_link)
Resource::Snippet.fabricate_via_browser_ui! do |snippet|
snippet.title = 'Snippet title'

View File

@ -20,7 +20,7 @@ module QA
validate_content('My First Wiki Content')
Page::Project::Wiki::Edit.perform(&:go_to_edit_page)
Page::Project::Wiki::Edit.perform(&:click_edit)
Page::Project::Wiki::New.perform do |page|
page.set_content("My Second Wiki Content")
page.save_changes

View File

@ -70,7 +70,7 @@ module QA
puts 'Waiting for the runner to process the pipeline'
sleep 15 # Runner should process all jobs within 15 seconds.
Page::Project::Pipeline::Index.perform(&:go_to_latest_pipeline)
Page::Project::Pipeline::Index.perform(&:click_on_latest_pipeline)
Page::Project::Pipeline::Show.perform do |pipeline|
expect(pipeline).to be_running

View File

@ -91,8 +91,8 @@ module QA
sha1sum = Digest::SHA1.hexdigest(gitlab_ci)
Page::Project::Menu.perform(&:click_ci_cd_pipelines)
Page::Project::Pipeline::Index.perform(&:go_to_latest_pipeline)
Page::Project::Pipeline::Show.perform(&:go_to_first_job)
Page::Project::Pipeline::Index.perform(&:click_on_latest_pipeline)
Page::Project::Pipeline::Show.perform(&:click_on_first_job)
Page::Project::Job::Show.perform do |job|
expect(job).to be_successful

View File

@ -63,10 +63,10 @@ module QA
end
Page::Project::Menu.perform(&:click_ci_cd_pipelines)
Page::Project::Pipeline::Index.perform(&:go_to_latest_pipeline)
Page::Project::Pipeline::Index.perform(&:click_on_latest_pipeline)
Page::Project::Pipeline::Show.perform do |pipeline|
pipeline.go_to_job('build')
pipeline.click_job('build')
end
Page::Project::Job::Show.perform do |job|
expect(job).to be_successful(timeout: 600)
@ -75,7 +75,7 @@ module QA
end
Page::Project::Pipeline::Show.perform do |pipeline|
pipeline.go_to_job('test')
pipeline.click_job('test')
end
Page::Project::Job::Show.perform do |job|
expect(job).to be_successful(timeout: 600)
@ -84,7 +84,7 @@ module QA
end
Page::Project::Pipeline::Show.perform do |pipeline|
pipeline.go_to_job('production')
pipeline.click_job('production')
end
Page::Project::Job::Show.perform do |job|
expect(job).to be_successful(timeout: 1200)
@ -92,9 +92,9 @@ module QA
job.click_element(:pipeline_path)
end
Page::Project::Menu.perform(&:click_operations_environments)
Page::Project::Menu.perform(&:go_to_operations_environments)
Page::Project::Operations::Environments::Index.perform do |index|
index.go_to_environment('production')
index.click_environment_linkindex.go_to_environment('production')
end
Page::Project::Operations::Environments::Show.perform do |show|
show.view_deployment do
@ -125,7 +125,7 @@ module QA
end
Page::Project::Menu.perform(&:click_ci_cd_pipelines)
Page::Project::Pipeline::Index.perform(&:go_to_latest_pipeline)
Page::Project::Pipeline::Index.perform(&:click_on_latest_pipeline)
Page::Project::Pipeline::Show.perform do |pipeline|
expect(pipeline).to have_tag('Auto DevOps')

View File

@ -9,7 +9,7 @@ module QA
Page::Main::Menu.act { go_to_groups }
Page::Dashboard::Groups.perform do |page|
page.go_to_new_group
page.click_new_group
expect(page).to have_content(
/Create a Mattermost team for this group/

View File

@ -27,7 +27,7 @@ module QA
Runtime::Browser.visit(ENV['GITLAB_ADDRESS'], Page::Main::Login)
Page::Main::Login.perform(&:sign_in_using_credentials)
Page::Main::Menu.perform(&:go_to_profile_settings)
Page::Main::Menu.perform(&:click_settings_link)
Page::Profile::Menu.perform(&:click_access_tokens)
token_name = 'api-test-token'