diff --git a/qa/qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb index 5786b15508ad950a3058435d25ab96117ef0a642..8e2ab12c5d917662b9f04bb635616402574fbe8b 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/ci_job_artifacts/expose_job_artifacts_in_mr_spec.rb @@ -16,13 +16,12 @@ module QA end let(:merge_request) do - Resource::MergeRequest.fabricate_via_api! do |merge_request| - merge_request.project = project - merge_request.description = 'Simple MR for a simple test' - merge_request.target_new_branch = false - merge_request.file_name = 'new_file.txt' - merge_request.file_content = 'Simple file for a simple MR' - end + create(:merge_request, + project: project, + description: 'Simple MR for a simple test', + target_new_branch: false, + file_name: 'new_file.txt', + file_content: 'Simple file for a simple MR') end before do diff --git a/qa/qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb b/qa/qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb index 065f86452bbfcb1bd34911353bf25bcf40222ef7..476bdcf6868e05914f1f9a7cd206bb728c657e19 100644 --- a/qa/qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb +++ b/qa/qa/specs/features/browser_ui/5_package/container_registry/self_managed/container_registry_spec.rb @@ -7,17 +7,16 @@ module QA let(:project) { create(:project, :private, name: 'project-with-registry', template_name: 'express') } let(:project_deploy_token) do - Resource::ProjectDeployToken.fabricate_via_api! do |deploy_token| - deploy_token.name = 'registry-deploy-token' - deploy_token.project = project - deploy_token.scopes = %w[ + create(:project_deploy_token, + name: 'registry-deploy-token', + project: project, + scopes: %w[ read_repository read_package_registry write_package_registry read_registry write_registry - ] - end + ]) end let!(:runner) do diff --git a/qa/qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb b/qa/qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb index b37d06e2223733f86e5c99b105e449f7899d7a81..1276a2019d5a8817e72a93eed5cbe6ac80c94531 100644 --- a/qa/qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb +++ b/qa/qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb @@ -17,14 +17,10 @@ module QA end let(:group_deploy_token) do - Resource::GroupDeployToken.fabricate_via_api! do |deploy_token| - deploy_token.name = 'dp-group-deploy-token' - deploy_token.group = project.group - deploy_token.scopes = %w[ - read_registry - write_registry - ] - end + create(:group_deploy_token, + name: 'dp-group-deploy-token', + group: project.group, + scopes: %w[read_registry write_registry]) end let(:personal_access_token) { Runtime::Env.personal_access_token } diff --git a/qa/qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb b/qa/qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb index f781ad0df2f87a844c6d92af31e27f60163df60a..26dfdae053876c85402034d54770b0bebbedfb2a 100644 --- a/qa/qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb +++ b/qa/qa/specs/features/browser_ui/5_package/package_registry/maven/maven_group_level_spec.rb @@ -14,15 +14,14 @@ module QA let(:package_type) { 'maven' } let(:group_deploy_token) do - Resource::GroupDeployToken.fabricate_via_api! do |deploy_token| - deploy_token.name = 'maven-group-deploy-token' - deploy_token.group = package_project.group - deploy_token.scopes = %w[ + create(:group_deploy_token, + name: 'maven-group-deploy-token', + group: package_project.group, + scopes: %w[ read_repository read_package_registry write_package_registry - ] - end + ]) end context 'via maven' do diff --git a/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb b/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb index c7ba83677c7e66d995c9014d875dba0ef6c76738..51279bb32dc45f0fc2607f470324e7789ec880ee 100644 --- a/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb +++ b/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb @@ -32,15 +32,14 @@ module QA end let(:project_deploy_token) do - Resource::ProjectDeployToken.fabricate_via_api! do |deploy_token| - deploy_token.name = 'package-deploy-token' - deploy_token.project = project - deploy_token.scopes = %w[ + create(:project_deploy_token, + name: 'package-deploy-token', + project: project, + scopes: %w[ read_repository read_package_registry write_package_registry - ] - end + ]) end let(:project_inbound_job_token_disabled) do diff --git a/qa/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb b/qa/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb index 426f32fe4dc48dc1eb48f54d4d529a70c9d8c8a7..5d33ee5cd9a0d07314f81d0bd73ecefc85de25d3 100644 --- a/qa/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb +++ b/qa/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb @@ -10,11 +10,10 @@ module QA deploy_token_name = 'deploy token name' one_week_from_now = Date.today + 7 - deploy_token = Resource::ProjectDeployToken.fabricate_via_api! do |resource| - resource.name = deploy_token_name - resource.expires_at = one_week_from_now - resource.scopes = %w[read_repository] - end + deploy_token = create(:project_deploy_token, + name: deploy_token_name, + expires_at: one_week_from_now, + scopes: %w[read_repository]) expect(deploy_token.username.length).to be > 0 expect(deploy_token.token.length).to be > 0 diff --git a/qa/qa/specs/features/ee/browser_ui/10_govern/scan_execution_policy_vulnerabilities_spec.rb b/qa/qa/specs/features/ee/browser_ui/10_govern/scan_execution_policy_vulnerabilities_spec.rb index 032b44c586aeb5156ba69bb3453ca755a4d2b376..0907633d444b8b7161bd68348fd0c833b2933c6a 100644 --- a/qa/qa/specs/features/ee/browser_ui/10_govern/scan_execution_policy_vulnerabilities_spec.rb +++ b/qa/qa/specs/features/ee/browser_ui/10_govern/scan_execution_policy_vulnerabilities_spec.rb @@ -86,12 +86,11 @@ module QA def create_scan_execution_policy branch_name = scan_execution_policy_commit.api_response[:branch] - Resource::MergeRequest.fabricate_via_api! do |merge_request| - merge_request.no_preparation = true - merge_request.project = policy_project - merge_request.target_new_branch = false - merge_request.source_branch = branch_name - end.merge_via_api! + create(:merge_request, + :no_preparation, + project: policy_project, + target_new_branch: false, + source_branch: branch_name).merge_via_api! end def pipeline_has_a_job? @@ -134,12 +133,11 @@ def create_commit(branch_name) end def create_test_mr - Resource::MergeRequest.fabricate_via_api! do |merge_request| - merge_request.no_preparation = true - merge_request.project = project - merge_request.target_new_branch = false - merge_request.source_branch = commit_branch - end + create(:merge_request, + :no_preparation, + project: project, + target_new_branch: false, + source_branch: commit_branch) end end end diff --git a/qa/qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_license_finding_spec.rb b/qa/qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_license_finding_spec.rb index 5d52e90510ebf3e3061d3be6a1f910926bd986ff..0098bdbbe36e61c84f1c13f4e1ba955adb44ee58 100644 --- a/qa/qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_license_finding_spec.rb +++ b/qa/qa/specs/features/ee/browser_ui/10_govern/scan_result_policy_license_finding_spec.rb @@ -108,22 +108,20 @@ module QA end def create_test_mr - Resource::MergeRequest.fabricate_via_api! do |merge_request| - merge_request.no_preparation = true - merge_request.project = project - merge_request.target_new_branch = false - merge_request.source_branch = commit_branch - end + create(:merge_request, + :no_preperation, + project: project, + target_new_branch: false, + source_branch: commit_branch) end def create_scan_result_policy branch_name = scan_result_policy_commit.api_response[:branch] - Resource::MergeRequest.fabricate_via_api! do |merge_request| - merge_request.no_preparation = true - merge_request.project = policy_project - merge_request.target_new_branch = false - merge_request.source_branch = branch_name - end.merge_via_api! + create(:merge_request, + :no_preparation, + project: policy_project, + target_new_branch: false, + source_branch: branch_name).merge_via_api! end end end diff --git a/qa/qa/specs/features/ee/browser_ui/13_secure/license_scanning_spec.rb b/qa/qa/specs/features/ee/browser_ui/13_secure/license_scanning_spec.rb index 548b5e23b2ac6c705b8342a644ca078827d23c54..c3b4463e23ac039ec0ede00297cf8da0a2673ed9 100644 --- a/qa/qa/specs/features/ee/browser_ui/13_secure/license_scanning_spec.rb +++ b/qa/qa/specs/features/ee/browser_ui/13_secure/license_scanning_spec.rb @@ -71,12 +71,12 @@ module QA context 'when populated by a Dependency Scan' do it 'populates licenses in the pipeline, dashboard and merge request', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/409969' do - merge_request = Resource::MergeRequest.fabricate_via_api! do |merge_request| - merge_request.source = source - merge_request.project = test_project - merge_request.source_branch = 'license-management-mr' - merge_request.target_branch = test_project.default_branch - end + merge_request = create(:merge_request, + source: source, + project: test_project, + source_branch: 'license-management-mr', + target_branch: test_project.default_branch) + Flow::Login.sign_in_unless_signed_in merge_request.visit! diff --git a/rubocop/cop/qa/fabricate_usage.rb b/rubocop/cop/qa/fabricate_usage.rb index 1787df0e7dfe0781ee68e729b6da3dbc8bf67ac2..b03646d8a9b753e66efc2353bf7d53c5a2ecec68 100644 --- a/rubocop/cop/qa/fabricate_usage.rb +++ b/rubocop/cop/qa/fabricate_usage.rb @@ -28,23 +28,35 @@ module QA class FabricateUsage < RuboCop::Cop::Base MESSAGE = "Prefer create(:%{factory}[, ...]) here." RESOURCES_TO_CHECK = { - 'Resource::Project' => :project, + 'Resource::CiVariable' => :ci_variable, + 'Resource::Commit' => :commit, + 'Resource::Design' => :design, + 'Resource::File' => :file, 'Resource::Group' => :group, + 'Resource::GroupAccessToken' => :group_access_token, + 'Resource::GroupDeployToken' => :group_deploy_token, + 'Resource::GroupLabel' => :group_label, + 'Resource::GroupMilestone' => :group_milestone, + 'Resource::GroupRunner' => :group_runner, + 'Resource::GroupWikiPage' => :group_wiki_page, 'Resource::Issue' => :issue, - 'Resource::User' => :user, - 'Resource::Pipeline' => :pipeline, 'Resource::Job' => :job, - 'Resource::File' => :file, - 'Resource::GroupAccessToken' => :group_access_token, + 'Resource::MergeRequest' => :merge_request, + 'Resource::Package' => :package, + 'Resource::Pipeline' => :pipeline, + 'Resource::PipelineSchedule' => :pipeline_schedule, + 'Resource::Project' => :project, 'Resource::ProjectAccessToken' => :project_access_token, - 'Resource::GroupLabel' => :group_label, + 'Resource::ProjectDeployToken' => :project_deploy_token, 'Resource::ProjectLabel' => :project_label, - 'Resource::GroupRunner' => :group_runner, - 'Resource::ProjectRunner' => :project_runner, - 'Resource::GroupMilestone' => :group_milestone, 'Resource::ProjectMilestone' => :project_milestone, + 'Resource::ProjectRunner' => :project_runner, + 'Resource::ProjectSnippet' => :project_snippet, + 'Resource::ProjectWikiPage' => :project_wiki_page, + 'Resource::Sandbox' => :sandbox, 'Resource::Snippet' => :snippet, - 'Resource::ProjectSnippet' => :project_snippet + 'Resource::Tag' => :tag, + 'Resource::User' => :user }.freeze RESTRICT_ON_SEND = %i[fabricate_via_api!].freeze