diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-06-16 18:25:58 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-06-16 18:25:58 +0000 |
commit | a5f4bba440d7f9ea47046a0a561d49adf0a1e6d4 (patch) | |
tree | fb69158581673816a8cd895f9d352dcb3c678b1e /qa/qa/specs | |
parent | d16b2e8639e99961de6ddc93909f3bb5c1445ba1 (diff) | |
download | gitlab-ce-a5f4bba440d7f9ea47046a0a561d49adf0a1e6d4.tar.gz |
Add latest changes from gitlab-org/gitlab@14-0-stable-eev14.0.0-rc42
Diffstat (limited to 'qa/qa/specs')
27 files changed, 201 insertions, 145 deletions
diff --git a/qa/qa/specs/features/api/3_create/gitaly/distributed_reads_spec.rb b/qa/qa/specs/features/api/3_create/gitaly/distributed_reads_spec.rb index 9bf3474ba5a..08b71258cc6 100644 --- a/qa/qa/specs/features/api/3_create/gitaly/distributed_reads_spec.rb +++ b/qa/qa/specs/features/api/3_create/gitaly/distributed_reads_spec.rb @@ -6,7 +6,7 @@ module QA RSpec.describe 'Create' do context 'Gitaly' do # Issue to track removal of feature flag: https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/602 - describe 'Distributed reads', :orchestrated, :gitaly_cluster, :skip_live_env, :requires_admin do + describe 'Distributed reads', :orchestrated, :gitaly_cluster, :skip_live_env, :requires_admin, quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/322814', type: :investigating } do let(:number_of_reads_per_loop) { 9 } let(:praefect_manager) { Service::PraefectManager.new } let(:project) do diff --git a/qa/qa/specs/features/api/3_create/gitaly/praefect_replication_queue_spec.rb b/qa/qa/specs/features/api/3_create/gitaly/praefect_replication_queue_spec.rb index 7e924475437..396d3f52798 100644 --- a/qa/qa/specs/features/api/3_create/gitaly/praefect_replication_queue_spec.rb +++ b/qa/qa/specs/features/api/3_create/gitaly/praefect_replication_queue_spec.rb @@ -4,7 +4,7 @@ require 'parallel' module QA RSpec.describe 'Create' do - context 'Gitaly Cluster replication queue', :orchestrated, :gitaly_cluster, :skip_live_env do + context 'Gitaly Cluster replication queue', :orchestrated, :gitaly_cluster, :skip_live_env, quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/331989', type: :investigating } do let(:praefect_manager) { Service::PraefectManager.new } let(:project) do Resource::Project.fabricate! do |project| diff --git a/qa/qa/specs/features/browser_ui/1_manage/group/bulk_import_group_spec.rb b/qa/qa/specs/features/browser_ui/1_manage/group/bulk_import_group_spec.rb index 055300122d4..d4c4ec5611a 100644 --- a/qa/qa/specs/features/browser_ui/1_manage/group/bulk_import_group_spec.rb +++ b/qa/qa/specs/features/browser_ui/1_manage/group/bulk_import_group_spec.rb @@ -2,20 +2,21 @@ module QA RSpec.describe 'Manage', :requires_admin do - describe 'Group bulk import' do - let!(:api_client) { Runtime::API::Client.as_admin } + describe 'Bulk group import' do + let!(:admin_api_client) { Runtime::API::Client.as_admin } let!(:user) do Resource::User.fabricate_via_api! do |usr| - usr.api_client = api_client + usr.api_client = admin_api_client usr.hard_delete_on_api_removal = true end end - let!(:personal_access_token) { Runtime::API::Client.new(user: user).personal_access_token } + let!(:api_client) { Runtime::API::Client.new(user: user) } + let!(:personal_access_token) { api_client.personal_access_token } let!(:sandbox) do Resource::Sandbox.fabricate_via_api! do |group| - group.api_client = api_client + group.api_client = admin_api_client end end @@ -37,6 +38,7 @@ module QA let(:imported_group) do Resource::Group.new.tap do |group| group.api_client = api_client + group.sandbox = sandbox group.path = source_group.path end end @@ -54,42 +56,65 @@ module QA end before(:all) do - Runtime::Feature.enable(:bulk_import) + Runtime::Feature.enable(:bulk_import) unless staging? Runtime::Feature.enable(:top_level_group_creation_enabled) if staging? end before do sandbox.add_member(user, Resource::Members::AccessLevel::MAINTAINER) - source_group.add_member(user, Resource::Members::AccessLevel::MAINTAINER) Flow::Login.sign_in(as: user) - Page::Main::Menu.new.go_to_import_group - Page::Group::New.new.connect_gitlab_instance(Runtime::Scenario.gitlab_address, personal_access_token) + Page::Main::Menu.perform(&:go_to_create_group) + Page::Group::New.perform do |group| + group.switch_to_import_tab + group.connect_gitlab_instance(Runtime::Scenario.gitlab_address, personal_access_token) + end end + # Non blocking issues: + # https://gitlab.com/gitlab-org/gitlab/-/issues/331252 it( - 'performs bulk group import from another gitlab instance', + 'imports group with subgroups and labels', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1785', - exclude: { job: ['ce:relative_url', 'ee:relative_url'] } # https://gitlab.com/gitlab-org/gitlab/-/issues/330344 + quarantine: { + only: { job: 'relative_url' }, + issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/330344', + type: :bug + } ) do + Resource::GroupLabel.fabricate_via_api! do |label| + label.api_client = api_client + label.group = source_group + label.title = "source-group-#{SecureRandom.hex(4)}" + end + Resource::GroupLabel.fabricate_via_api! do |label| + label.api_client = api_client + label.group = subgroup + label.title = "subgroup-#{SecureRandom.hex(4)}" + end + Page::Group::BulkImport.perform do |import_page| import_page.import_group(source_group.path, sandbox.path) aggregate_failures do - expect(import_page).to have_imported_group(source_group.path, wait: 120) - expect(imported_group).to eq(source_group) - expect(imported_subgroup).to eq(subgroup) + expect(import_page).to have_imported_group(source_group.path, wait: 180) + + expect { imported_group.reload! }.to eventually_eq(source_group).within(duration: 10) + expect { imported_group.labels }.to eventually_include(*source_group.labels).within(duration: 10) + + # Do not validate subgroups until https://gitlab.com/gitlab-org/gitlab/-/issues/332818 is resolved + # expect { imported_subgroup.reload! }.to eventually_eq(subgroup).within(duration: 30) + # expect { imported_subgroup.labels }.to eventually_include(*subgroup.labels).within(duration: 30) end end end after do user.remove_via_api! - source_group.remove_via_api! end after(:all) do - Runtime::Feature.disable(:bulk_import) + Runtime::Feature.disable(:bulk_import) unless staging? Runtime::Feature.disable(:top_level_group_creation_enabled) if staging? end end diff --git a/qa/qa/specs/features/browser_ui/1_manage/group/create_group_with_mattermost_team_spec.rb b/qa/qa/specs/features/browser_ui/1_manage/group/create_group_with_mattermost_team_spec.rb index 7bcc1fa4e1c..192c1a3908b 100644 --- a/qa/qa/specs/features/browser_ui/1_manage/group/create_group_with_mattermost_team_spec.rb +++ b/qa/qa/specs/features/browser_ui/1_manage/group/create_group_with_mattermost_team_spec.rb @@ -10,9 +10,13 @@ module QA Page::Dashboard::Groups.perform do |groups| groups.click_new_group - expect(groups).to have_content( - /Create a Mattermost team for this group/ - ) + Page::Group::New.perform do |group_new| + group_new.click_create_group + + expect(group_new).to have_content( + /Create a Mattermost team for this group/ + ) + end end end end diff --git a/qa/qa/specs/features/browser_ui/1_manage/group/transfer_group_spec.rb b/qa/qa/specs/features/browser_ui/1_manage/group/transfer_group_spec.rb index d6bcd134a03..84464f7174a 100644 --- a/qa/qa/specs/features/browser_ui/1_manage/group/transfer_group_spec.rb +++ b/qa/qa/specs/features/browser_ui/1_manage/group/transfer_group_spec.rb @@ -28,14 +28,17 @@ module QA end it 'transfers a subgroup to another group', - testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1724' do + testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1724' do Page::Group::Menu.perform(&:click_group_general_settings_item) Page::Group::Settings::General.perform do |general| general.transfer_group(target_group.path) + + sub_group_for_transfer.sandbox = target_group + sub_group_for_transfer.reload! end expect(page).to have_text("Group '#{sub_group_for_transfer.path}' was successfully transferred.") - expect(page.driver.current_url).to include("#{target_group.path}/#{sub_group_for_transfer.path}") + expect(page.driver.current_url).to include(sub_group_for_transfer.full_path) end after do diff --git a/qa/qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb b/qa/qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb index 5072b6d48bf..55ad8baf872 100644 --- a/qa/qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb +++ b/qa/qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb @@ -3,25 +3,26 @@ module QA RSpec.describe 'Manage', :github, :requires_admin do describe 'Project import' do + let!(:api_client) { Runtime::API::Client.as_admin } + let!(:group) { Resource::Group.fabricate_via_api! { |resource| resource.api_client = api_client } } let!(:user) do Resource::User.fabricate_via_api! do |resource| - resource.api_client = Runtime::API::Client.as_admin + resource.api_client = api_client + resource.hard_delete_on_api_removal = true end end - let(:group) { Resource::Group.fabricate_via_api! } - let(:imported_project) do Resource::ProjectImportedFromGithub.fabricate_via_browser_ui! do |project| project.name = 'imported-project' project.group = group project.github_personal_access_token = Runtime::Env.github_access_token project.github_repository_path = 'gitlab-qa-github/test-project' + project.api_client = api_client end end before do - Runtime::Feature.enable(:invite_members_group_modal, group: group) group.add_member(user, Resource::Members::AccessLevel::MAINTAINER) end @@ -32,90 +33,90 @@ module QA it 'imports a GitHub repo', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1762' do Flow::Login.sign_in(as: user) - imported_project # import the project + imported_project.reload! # import the project and reload all fields - Page::Main::Menu.perform(&:go_to_projects) - Page::Dashboard::Projects.perform do |dashboard| - dashboard.go_to_project(imported_project.name) + aggregate_failures do + verify_repository_import + verify_commits_import + verify_labels_import + verify_issues_import + verify_milestones_import + verify_wikis_import + verify_merge_requests_import end - - Page::Project::Show.perform(&:wait_for_import) - - verify_repository_import - verify_issues_import - verify_merge_requests_import - verify_labels_import - verify_milestones_import - verify_wiki_import end def verify_repository_import - Page::Project::Show.perform do |project| - expect(project).to have_content('This test project is used for automated GitHub import by GitLab QA.') - expect(project).to have_content(imported_project.name) - end + expect(imported_project.api_response).to include( + description: 'A new repo for test', + import_status: 'finished', + import_error: nil + ) end - def verify_issues_import - QA::Support::Retrier.retry_on_exception do - Page::Project::Menu.perform(&:click_issues) - - Page::Project::Issue::Show.perform do |issue_page| - expect(issue_page).to have_content('This is a sample issue') - - click_link 'This is a sample issue' - - expect(issue_page).to have_content('This is a sample first comment') - - # Comments - comment_text = 'This is a comment from @sliaquat' - - expect(issue_page).to have_comment(comment_text) - expect(issue_page).to have_label('custom new label') - expect(issue_page).to have_label('help wanted') - expect(issue_page).to have_label('good first issue') - end - end + def verify_commits_import + expect(imported_project.commits.length).to eq(20) end - def verify_merge_requests_import - Page::Project::Menu.perform(&:click_merge_requests) - - Page::MergeRequest::Show.perform do |merge_request| - expect(merge_request).to have_content('Improve readme') - - click_link 'Improve readme' - - expect(merge_request).to have_content('This improves the README file a bit.') - - # Comments - expect(merge_request).to have_content('[PR comment by @sliaquat] Nice work!') - - # Diff comments - expect(merge_request).to have_content('[Single diff comment] Good riddance') - expect(merge_request).to have_content('[Single diff comment] Nice addition') - - expect(merge_request).to have_label('bug') - expect(merge_request).to have_label('documentation') - end + def verify_labels_import + labels = imported_project.labels.map { |label| label.slice(:name, :color) } + + expect(labels).to eq( + [ + { name: 'bug', color: '#d73a4a' }, + { name: 'custom new label', color: '#fc8f91' }, + { name: 'documentation', color: '#0075ca' }, + { name: 'duplicate', color: '#cfd3d7' }, + { name: 'enhancement', color: '#a2eeef' }, + { name: 'good first issue', color: '#7057ff' }, + { name: 'help wanted', color: '#008672' }, + { name: 'invalid', color: '#e4e669' }, + { name: 'question', color: '#d876e3' }, + { name: 'wontfix', color: '#ffffff' } + ] + ) end - def verify_labels_import - # TODO: Waiting on https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/19228 - # to build upon it. + def verify_issues_import + issues = imported_project.issues + + expect(issues.length).to eq(1) + expect(issues.first).to include( + title: 'This is a sample issue', + description: "*Created by: gitlab-qa-github*\n\nThis is a sample first comment", + labels: ['custom new label', 'good first issue', 'help wanted'], + user_notes_count: 1 + ) end def verify_milestones_import - # TODO: Waiting on https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/18727 - # to build upon it. + milestones = imported_project.milestones + + expect(milestones.length).to eq(1) + expect(milestones.first).to include(title: 'v1.0', description: nil, state: 'active') end - def verify_wiki_import - Page::Project::Menu.perform(&:click_wiki) + def verify_wikis_import + wikis = imported_project.wikis - Page::Project::Wiki::Show.perform do |wiki| - expect(wiki).to have_content('Welcome to the test-project wiki!') - end + expect(wikis.length).to eq(1) + expect(wikis.first).to include(title: 'Home', format: 'markdown') + end + + def verify_merge_requests_import + merge_requests = imported_project.merge_requests + + expect(merge_requests.length).to eq(1) + expect(merge_requests.first).to include( + title: 'Improve readme', + state: 'opened', + target_branch: 'main', + source_branch: 'improve-readme', + labels: %w[bug documentation], + description: <<~DSC.strip + *Created by: gitlab-qa-github*\n\nThis improves the README file a bit.\r\n\r\nTODO:\r\n\r\n \r\n\r\n- [ ] Do foo\r\n- [ ] Make bar\r\n - [ ] Think about baz + DSC + ) end end end diff --git a/qa/qa/specs/features/browser_ui/2_plan/issue/real_time_assignee_spec.rb b/qa/qa/specs/features/browser_ui/2_plan/issue/real_time_assignee_spec.rb index 2654531bc2c..44a361df34d 100644 --- a/qa/qa/specs/features/browser_ui/2_plan/issue/real_time_assignee_spec.rb +++ b/qa/qa/specs/features/browser_ui/2_plan/issue/real_time_assignee_spec.rb @@ -25,6 +25,7 @@ module QA after do Runtime::Feature.disable('real_time_issue_sidebar', project: project) Runtime::Feature.disable('broadcast_issue_updates', project: project) + Runtime::Feature.disable(:invite_members_group_modal, project: project) end it 'update without refresh', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1048' do @@ -37,7 +38,9 @@ module QA Page::Project::Issue::Show.perform do |show| expect(show).to have_assignee(user1.name) - + # We need to wait 1 second for the page to connect to the websocket to subscribe to updates + # https://gitlab.com/gitlab-org/gitlab/-/issues/293699#note_583959786 + sleep 1 issue.set_issue_assignees(assignee_ids: [user2.id]) expect(show).to have_assignee(user2.name) diff --git a/qa/qa/specs/features/browser_ui/3_create/design_management/modify_design_content_spec.rb b/qa/qa/specs/features/browser_ui/3_create/design_management/modify_design_content_spec.rb index dfdc9b7c9b4..59d34612ca7 100644 --- a/qa/qa/specs/features/browser_ui/3_create/design_management/modify_design_content_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/design_management/modify_design_content_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module QA - RSpec.describe 'Create' do + RSpec.describe 'Create', quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/331978', type: :bug } do context 'Design Management' do let(:design) do Resource::Design.fabricate! do |design| diff --git a/qa/qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb b/qa/qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb index 81ad1896075..082d001b716 100644 --- a/qa/qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb @@ -16,7 +16,11 @@ module QA Flow::Login.sign_in end - it 'creates a basic merge request', :smoke, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1276' do + it( + 'creates a basic merge request', + :smoke, + testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1850' + ) do Resource::MergeRequest.fabricate_via_browser_ui! do |merge_request| merge_request.project = project merge_request.title = merge_request_title @@ -29,14 +33,17 @@ module QA end end - it 'creates a merge request with a milestone and label', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/514' do + it( + 'creates a merge request with a milestone and label', + testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/514' + ) do gitlab_account_username = "@#{Runtime::User.username}" milestone = Resource::ProjectMilestone.fabricate_via_api! do |milestone| milestone.project = project end - label = Resource::Label.fabricate_via_api! do |label| + label = Resource::ProjectLabel.fabricate_via_api! do |label| label.project = project label.title = 'label' end diff --git a/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb b/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb index c2e148e19bd..dd4b3276687 100644 --- a/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb @@ -2,7 +2,8 @@ module QA RSpec.describe 'Create' do - describe 'Merge request creation from fork', :smoke do + describe 'Merge request creation from fork' do + # TODO: Please add this back to :smoke suite as soon as https://gitlab.com/gitlab-org/gitlab/-/issues/332588 is addressed it 'can merge feature branch fork to mainline', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1701' do merge_request = Resource::MergeRequestFromFork.fabricate_via_browser_ui! do |merge_request| merge_request.fork_branch = 'feature-branch' diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/add_list_delete_branches_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/add_list_delete_branches_spec.rb index d400876c838..639702f9148 100644 --- a/qa/qa/specs/features/browser_ui/3_create/repository/add_list_delete_branches_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/repository/add_list_delete_branches_spec.rb @@ -2,7 +2,7 @@ module QA RSpec.describe 'Create' do - describe 'Create, list, and delete branches via web' do + describe 'Create, list, and delete branches via web', :requires_admin do master_branch = nil second_branch = 'second-branch' third_branch = 'third-branch' @@ -24,6 +24,8 @@ module QA proj.initialize_with_readme = true end + Runtime::Feature.enable(:delete_branch_confirmation_modals, project: project) + master_branch = project.default_branch Git::Repository.perform do |repository| diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb index 2c0fb5ea290..67b48d254ac 100644 --- a/qa/qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb @@ -3,7 +3,7 @@ module QA RSpec.describe 'Create' do describe 'Git push over HTTP', :smoke do - it 'user using a personal access token pushes code to the repository', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1278' do + it 'user using a personal access token pushes code to the repository', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1848' do Flow::Login.sign_in access_token = Resource::PersonalAccessToken.fabricate!.token diff --git a/qa/qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_spec.rb b/qa/qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_spec.rb index 4f241325437..ae8f34f9845 100644 --- a/qa/qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_spec.rb @@ -7,7 +7,7 @@ module QA Flow::Login.sign_in Page::Main::Menu.perform do |menu| - menu.go_to_more_dropdown_option(:snippets_link) + menu.go_to_menu_dropdown_option(:snippets_link) end Resource::Snippet.fabricate_via_browser_ui! do |snippet| diff --git a/qa/qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_with_multiple_files_spec.rb b/qa/qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_with_multiple_files_spec.rb index 50f2f4789fa..8ff3222f065 100644 --- a/qa/qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_with_multiple_files_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/snippet/create_personal_snippet_with_multiple_files_spec.rb @@ -7,7 +7,7 @@ module QA Flow::Login.sign_in Page::Main::Menu.perform do |menu| - menu.go_to_more_dropdown_option(:snippets_link) + menu.go_to_menu_dropdown_option(:snippets_link) end Resource::Snippet.fabricate_via_browser_ui! do |snippet| diff --git a/qa/qa/specs/features/browser_ui/3_create/snippet/snippet_index_page_spec.rb b/qa/qa/specs/features/browser_ui/3_create/snippet/snippet_index_page_spec.rb index 9c7dc868a2e..d922950335f 100644 --- a/qa/qa/specs/features/browser_ui/3_create/snippet/snippet_index_page_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/snippet/snippet_index_page_spec.rb @@ -60,7 +60,7 @@ module QA it "shows correct details of #{snippet_type} including file number" do send(snippet_type) Page::Main::Menu.perform do |menu| - menu.go_to_more_dropdown_option(:snippets_link) + menu.go_to_menu_dropdown_option(:snippets_link) end Page::Dashboard::Snippet::Index.perform do |snippet| diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb index 8617e05f912..7a81318f158 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb @@ -24,7 +24,8 @@ module QA runner.remove_via_api! end - it 'users creates a pipeline which gets processed', :smoke, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1279' do + it 'users creates a pipeline which gets processed', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1849' do + # TODO: Convert back to :smoke once proved to be stable. Related issue: https://gitlab.com/gitlab-org/gitlab/-/issues/300909 Flow::Login.sign_in Resource::Repository::Commit.fabricate_via_api! do |commit| @@ -47,7 +48,7 @@ module QA - echo 'FAILURE' - exit 1 - test-tags: + test-tags-mismatch: tags: - invalid script: echo 'NOOP' @@ -70,7 +71,7 @@ module QA { 'test-success': :passed, 'test-failure': :failed, - 'test-tags': :pending, + 'test-tags-mismatch': :pending, 'test-artifacts': :passed }.each do |job, status| Page::Project::Pipeline::Show.perform do |pipeline| diff --git a/qa/qa/specs/features/browser_ui/5_package/container_registry_spec.rb b/qa/qa/specs/features/browser_ui/5_package/container_registry_spec.rb index 7a71d1cfbaf..9131cad7244 100644 --- a/qa/qa/specs/features/browser_ui/5_package/container_registry_spec.rb +++ b/qa/qa/specs/features/browser_ui/5_package/container_registry_spec.rb @@ -30,6 +30,14 @@ module QA DOCKER_TLS_CERTDIR: "/certs" DOCKER_TLS_VERIFY: 1 DOCKER_CERT_PATH: "$DOCKER_TLS_CERTDIR/client" + before_script: + - | + echo "Waiting for docker to start..." + for i in $(seq 1 30) + do + docker info && break + sleep 1s + done script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build -t $IMAGE_TAG . diff --git a/qa/qa/specs/features/browser_ui/5_package/maven_repository_spec.rb b/qa/qa/specs/features/browser_ui/5_package/maven_repository_spec.rb index fb019290d4c..9c00f1f6d17 100644 --- a/qa/qa/specs/features/browser_ui/5_package/maven_repository_spec.rb +++ b/qa/qa/specs/features/browser_ui/5_package/maven_repository_spec.rb @@ -3,7 +3,7 @@ require 'securerandom' module QA - RSpec.describe 'Package', :orchestrated, :packages do + RSpec.describe 'Package', :orchestrated, :packages, :reliable do describe 'Maven Repository' do include Runtime::Fixtures @@ -44,7 +44,7 @@ module QA runner.name = "qa-runner-#{Time.now.to_i}" runner.tags = ["runner-for-#{project.group.name}"] runner.executor = :docker - runner.token = project.group.sandbox.runners_token + runner.token = project.group.runners_token end end diff --git a/qa/qa/specs/features/browser_ui/5_package/npm_registry_spec.rb b/qa/qa/specs/features/browser_ui/5_package/npm_registry_spec.rb index 4d714affd65..c4bfaacca11 100644 --- a/qa/qa/specs/features/browser_ui/5_package/npm_registry_spec.rb +++ b/qa/qa/specs/features/browser_ui/5_package/npm_registry_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module QA - RSpec.describe 'Package', :orchestrated, :packages do + RSpec.describe 'Package', :orchestrated, :packages, :reliable do describe 'npm registry' do include Runtime::Fixtures @@ -37,7 +37,7 @@ module QA runner.name = "qa-runner-#{Time.now.to_i}" runner.tags = ["runner-for-#{project.group.name}"] runner.executor = :docker - runner.token = project.group.sandbox.runners_token + runner.token = project.group.runners_token end end diff --git a/qa/qa/specs/features/browser_ui/5_package/nuget_repository_spec.rb b/qa/qa/specs/features/browser_ui/5_package/nuget_repository_spec.rb index 3db5b9671d9..daf41f1c6ab 100644 --- a/qa/qa/specs/features/browser_ui/5_package/nuget_repository_spec.rb +++ b/qa/qa/specs/features/browser_ui/5_package/nuget_repository_spec.rb @@ -31,9 +31,9 @@ module QA let!(:runner) do Resource::Runner.fabricate! do |runner| runner.name = "qa-runner-#{Time.now.to_i}" - runner.tags = ["runner-for-#{project.group.sandbox.name}"] + runner.tags = ["runner-for-#{project.group.name}"] runner.executor = :docker - runner.token = project.group.sandbox.runners_token + runner.token = project.group.runners_token end end @@ -69,7 +69,7 @@ module QA only: - "#{project.default_branch}" tags: - - "runner-for-#{project.group.sandbox.name}" + - "runner-for-#{project.group.name}" YAML } ] @@ -128,7 +128,7 @@ module QA only: - "#{another_project.default_branch}" tags: - - "runner-for-#{project.group.sandbox.name}" + - "runner-for-#{project.group.name}" YAML } ] @@ -145,7 +145,7 @@ module QA expect(job).to be_successful(timeout: 800) end - project.group.sandbox.visit! + project.group.visit! Page::Group::Menu.perform(&:go_to_group_packages) diff --git a/qa/qa/specs/features/browser_ui/6_release/pages/pages_pipeline_spec.rb b/qa/qa/specs/features/browser_ui/6_release/pages/pages_pipeline_spec.rb index 2cb2ea2d636..1502e1ab924 100644 --- a/qa/qa/specs/features/browser_ui/6_release/pages/pages_pipeline_spec.rb +++ b/qa/qa/specs/features/browser_ui/6_release/pages/pages_pipeline_spec.rb @@ -1,7 +1,8 @@ # frozen_string_literal: true module QA - RSpec.describe 'Release', :smoke, :runner do + RSpec.describe 'Release', :runner do + # TODO: Convert back to :smoke once proved to be stable. Related issue: https://gitlab.com/gitlab-org/gitlab/-/issues/300906 describe 'Pages' do let!(:project) do Resource::Project.fabricate_via_api! do |project| diff --git a/qa/qa/specs/features/browser_ui/7_configure/auto_devops/auto_devops_templates_spec.rb b/qa/qa/specs/features/browser_ui/7_configure/auto_devops/auto_devops_templates_spec.rb index fe2d821576b..2538f249010 100644 --- a/qa/qa/specs/features/browser_ui/7_configure/auto_devops/auto_devops_templates_spec.rb +++ b/qa/qa/specs/features/browser_ui/7_configure/auto_devops/auto_devops_templates_spec.rb @@ -18,7 +18,7 @@ module QA end where(:template) do - %w[rails spring express] + %w[express] end with_them do @@ -45,7 +45,7 @@ module QA Flow::Login.sign_in end - it 'works with Auto DevOps', quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/240946', type: :flaky } do + it 'works with Auto DevOps' do %w[build code_quality test].each do |job| pipeline.visit! diff --git a/qa/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb b/qa/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb index e2cf5c5b195..1dcc02095f6 100644 --- a/qa/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb +++ b/qa/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb @@ -81,11 +81,11 @@ module QA job.click_element(:pipeline_path) end - Page::Project::Menu.perform(&:go_to_operations_environments) - Page::Project::Operations::Environments::Index.perform do |index| + Page::Project::Menu.perform(&:go_to_deployments_environments) + Page::Project::Deployments::Environments::Index.perform do |index| index.click_environment_link('production') end - Page::Project::Operations::Environments::Show.perform do |show| + Page::Project::Deployments::Environments::Show.perform do |show| show.view_deployment do expect(page).to have_content('Hello World!') expect(page).to have_content('you_can_see_this_variable') @@ -115,7 +115,7 @@ module QA end end - it 'runs an AutoDevOps pipeline', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1277' do + it 'runs an AutoDevOps pipeline', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1847' do Flow::Pipeline.visit_latest_pipeline Page::Project::Pipeline::Show.perform do |pipeline| diff --git a/qa/qa/specs/features/browser_ui/7_configure/kubernetes/kubernetes_integration_spec.rb b/qa/qa/specs/features/browser_ui/7_configure/kubernetes/kubernetes_integration_spec.rb index 09fbbf5adc5..1803b4b16de 100644 --- a/qa/qa/specs/features/browser_ui/7_configure/kubernetes/kubernetes_integration_spec.rb +++ b/qa/qa/specs/features/browser_ui/7_configure/kubernetes/kubernetes_integration_spec.rb @@ -26,9 +26,9 @@ module QA k8s_cluster.cluster = cluster end.project.visit! - Page::Project::Menu.perform(&:go_to_operations_kubernetes) + Page::Project::Menu.perform(&:go_to_infrastructure_kubernetes) - Page::Project::Operations::Kubernetes::Index.perform do |index| + Page::Project::Infrastructure::Kubernetes::Index.perform do |index| expect(index).to have_cluster(cluster) end end diff --git a/qa/qa/specs/features/browser_ui/8_monitor/all_monitor_core_features_spec.rb b/qa/qa/specs/features/browser_ui/8_monitor/all_monitor_core_features_spec.rb index 94df408f9aa..1511f74c883 100644 --- a/qa/qa/specs/features/browser_ui/8_monitor/all_monitor_core_features_spec.rb +++ b/qa/qa/specs/features/browser_ui/8_monitor/all_monitor_core_features_spec.rb @@ -17,9 +17,9 @@ module QA end it 'duplicates to create dashboard to custom', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/871' do - Page::Project::Menu.perform(&:go_to_operations_metrics) + Page::Project::Menu.perform(&:go_to_monitor_metrics) - Page::Project::Operations::Metrics::Show.perform do |on_dashboard| + Page::Project::Monitor::Metrics::Show.perform do |on_dashboard| on_dashboard.duplicate_dashboard expect(on_dashboard).to have_metrics @@ -28,9 +28,9 @@ module QA end it 'verifies data on filtered deployed environment', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/874' do - Page::Project::Menu.perform(&:go_to_operations_metrics) + Page::Project::Menu.perform(&:go_to_monitor_metrics) - Page::Project::Operations::Metrics::Show.perform do |on_dashboard| + Page::Project::Monitor::Metrics::Show.perform do |on_dashboard| on_dashboard.filter_environment expect(on_dashboard).to have_metrics @@ -38,9 +38,9 @@ module QA end it 'filters using the quick range', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/873' do - Page::Project::Menu.perform(&:go_to_operations_metrics) + Page::Project::Menu.perform(&:go_to_monitor_metrics) - Page::Project::Operations::Metrics::Show.perform do |on_dashboard| + Page::Project::Monitor::Metrics::Show.perform do |on_dashboard| on_dashboard.show_last('30 minutes') expect(on_dashboard).to have_metrics @@ -53,13 +53,13 @@ module QA end it 'observes cluster health graph', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/920' do - Page::Project::Menu.perform(&:go_to_operations_kubernetes) + Page::Project::Menu.perform(&:go_to_infrastructure_kubernetes) - Page::Project::Operations::Kubernetes::Index.perform do |cluster_list| + Page::Project::Infrastructure::Kubernetes::Index.perform do |cluster_list| cluster_list.click_on_cluster(@cluster) end - Page::Project::Operations::Kubernetes::Show.perform do |cluster_panel| + Page::Project::Infrastructure::Kubernetes::Show.perform do |cluster_panel| cluster_panel.open_health cluster_panel.wait_for_cluster_health end @@ -78,9 +78,9 @@ module QA push.new_branch = false end - Page::Project::Menu.perform(&:go_to_operations_metrics) + Page::Project::Menu.perform(&:go_to_monitor_metrics) - Page::Project::Operations::Metrics::Show.perform do |dashboard| + Page::Project::Monitor::Metrics::Show.perform do |dashboard| dashboard.select_dashboard('templating.yml') expect(dashboard).to have_template_metric('CPU usage GitLab Runner') @@ -101,9 +101,9 @@ module QA metrics_panel.add_custom_metric end - Page::Project::Menu.perform(&:go_to_operations_metrics) + Page::Project::Menu.perform(&:go_to_monitor_metrics) - Page::Project::Operations::Metrics::Show.perform do |on_dashboard| + Page::Project::Monitor::Metrics::Show.perform do |on_dashboard| expect(on_dashboard).to have_custom_metric('HTTP Requests Total') end end @@ -116,9 +116,9 @@ module QA metrics_panel.edit_custom_metric end - Page::Project::Menu.perform(&:go_to_operations_metrics) + Page::Project::Menu.perform(&:go_to_monitor_metrics) - Page::Project::Operations::Metrics::Show.perform do |on_dashboard| + Page::Project::Monitor::Metrics::Show.perform do |on_dashboard| expect(on_dashboard).to have_custom_metric('Throughput') end end @@ -132,9 +132,9 @@ module QA metrics_panel.delete_custom_metric end - Page::Project::Menu.perform(&:go_to_operations_metrics) + Page::Project::Menu.perform(&:go_to_monitor_metrics) - Page::Project::Operations::Metrics::Show.perform do |on_dashboard| + Page::Project::Monitor::Metrics::Show.perform do |on_dashboard| expect(on_dashboard).not_to have_custom_metric('Throughput') end end diff --git a/qa/qa/specs/features/browser_ui/8_monitor/cluster_with_prometheus.rb b/qa/qa/specs/features/browser_ui/8_monitor/cluster_with_prometheus.rb index ed0064e8b6f..19e49400d5e 100644 --- a/qa/qa/specs/features/browser_ui/8_monitor/cluster_with_prometheus.rb +++ b/qa/qa/specs/features/browser_ui/8_monitor/cluster_with_prometheus.rb @@ -17,7 +17,7 @@ module QA %w[ CODE_QUALITY_DISABLED TEST_DISABLED LICENSE_MANAGEMENT_DISABLED SAST_DISABLED DAST_DISABLED DEPENDENCY_SCANNING_DISABLED - CONTAINER_SCANNING_DISABLED PERFORMANCE_DISABLED SECRET_DETECTION_DISABLED + CONTAINER_SCANNING_DISABLED BROWSER_PERFORMANCE_DISABLED SECRET_DETECTION_DISABLED ].each do |key| Resource::CiVariable.fabricate_via_api! do |resource| resource.project = @project diff --git a/qa/qa/specs/features/browser_ui/non_devops/performance_bar_spec.rb b/qa/qa/specs/features/browser_ui/non_devops/performance_bar_spec.rb index 302fec55c53..de425dde6c0 100644 --- a/qa/qa/specs/features/browser_ui/non_devops/performance_bar_spec.rb +++ b/qa/qa/specs/features/browser_ui/non_devops/performance_bar_spec.rb @@ -20,7 +20,7 @@ module QA end end - it 'shows results for the original request and AJAX requests', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/478', quarantine: { only: { pipeline: :master }, issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/323051', type: :bug } do + it 'shows results for the original request and AJAX requests', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/478', quarantine: { only: { pipeline: :main }, issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/323051', type: :bug } do # Issue pages always make AJAX requests Resource::Issue.fabricate_via_browser_ui! do |issue| issue.title = 'Performance bar test' |