diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-21 02:50:22 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-21 02:50:22 +0300 |
commit | 9dc93a4519d9d5d7be48ff274127136236a3adb3 (patch) | |
tree | 70467ae3692a0e35e5ea56bcb803eb512a10bedb /spec/factories | |
parent | 4b0f34b6d759d6299322b3a54453e930c6121ff0 (diff) |
Add latest changes from gitlab-org/gitlab@13-11-stable-eev13.11.0-rc43
Diffstat (limited to 'spec/factories')
23 files changed, 234 insertions, 74 deletions
diff --git a/spec/factories/atlassian_identities.rb b/spec/factories/atlassian_identities.rb index 698cf4ae7ad..80420e335a9 100644 --- a/spec/factories/atlassian_identities.rb +++ b/spec/factories/atlassian_identities.rb @@ -3,7 +3,7 @@ FactoryBot.define do factory :atlassian_identity, class: 'Atlassian::Identity' do extern_uid { generate(:username) } - user { create(:user) } + user { association(:user) } expires_at { 2.weeks.from_now } token { SecureRandom.alphanumeric(1254) } refresh_token { SecureRandom.alphanumeric(45) } diff --git a/spec/factories/bulk_import/trackers.rb b/spec/factories/bulk_import/trackers.rb index 03af5b41e0f..94340b0f389 100644 --- a/spec/factories/bulk_import/trackers.rb +++ b/spec/factories/bulk_import/trackers.rb @@ -5,7 +5,19 @@ FactoryBot.define do association :entity, factory: :bulk_import_entity stage { 0 } - relation { :relation } has_next_page { false } + sequence(:pipeline_name) { |n| "pipeline_name_#{n}" } + + trait :started do + status { 1 } + + sequence(:jid) { |n| "bulk_import_entity_#{n}" } + end + + trait :finished do + status { 2 } + + sequence(:jid) { |n| "bulk_import_entity_#{n}" } + end end end diff --git a/spec/factories/ci/builds.rb b/spec/factories/ci/builds.rb index 886be520668..b06d581d2c0 100644 --- a/spec/factories/ci/builds.rb +++ b/spec/factories/ci/builds.rb @@ -30,6 +30,21 @@ FactoryBot.define do yaml_variables { nil } end + trait :unique_name do + name { generate(:job_name) } + end + + trait :dependent do + transient do + sequence(:needed_name) { |n| "dependency #{n}" } + needed { association(:ci_build, name: needed_name, pipeline: pipeline) } + end + + after(:create) do |build, evaluator| + build.needs << create(:ci_build_need, build: build, name: evaluator.needed.name) + end + end + trait :started do started_at { 'Di 29. Okt 09:51:28 CET 2013' } end diff --git a/spec/factories/ci/pipeline_artifacts.rb b/spec/factories/ci/pipeline_artifacts.rb index 05ff7afed7c..3250c7abb4b 100644 --- a/spec/factories/ci/pipeline_artifacts.rb +++ b/spec/factories/ci/pipeline_artifacts.rb @@ -13,6 +13,22 @@ FactoryBot.define do Rails.root.join('spec/fixtures/pipeline_artifacts/code_coverage.json'), 'application/json') end + trait :checksummed do + verification_checksum { 'abc' } + end + + trait :checksum_failure do + verification_failure { 'Could not calculate the checksum' } + end + + trait :expired do + expire_at { Date.yesterday } + end + + trait :remote_store do + file_store { ::ObjectStorage::Store::REMOTE} + end + trait :with_coverage_report do file_type { :code_coverage } diff --git a/spec/factories/ci/reports/codequality_degradations.rb b/spec/factories/ci/reports/codequality_degradations.rb index d82157b457a..8b53f2bf46e 100644 --- a/spec/factories/ci/reports/codequality_degradations.rb +++ b/spec/factories/ci/reports/codequality_degradations.rb @@ -95,4 +95,47 @@ FactoryBot.define do }.with_indifferent_access end end + + # TODO: Use this in all other specs and remove the previous numbered factories + # https://gitlab.com/gitlab-org/gitlab/-/issues/325886 + factory :codequality_degradation, class: Hash do + skip_create + + # Feel free to add in more configurable properties here + # as the need arises + fingerprint { SecureRandom.hex } + severity { "major" } + + Gitlab::Ci::Reports::CodequalityReports::SEVERITY_PRIORITIES.keys.each do |s| + trait s.to_sym do + severity { s } + end + end + + initialize_with do + { + "categories": [ + "Complexity" + ], + "check_name": "argument_count", + "content": { + "body": "" + }, + "description": "Avoid parameter lists longer than 5 parameters. [12/5]", + "fingerprint": fingerprint, + "location": { + "path": "file_a.rb", + "lines": { + "begin": 10, + "end": 10 + } + }, + "other_locations": [], + "remediation_points": 900000, + "severity": severity, + "type": "issue", + "engine_name": "structure" + }.with_indifferent_access + end + end end diff --git a/spec/factories/ci/test_case.rb b/spec/factories/ci/unit_test.rb index 601a3fae970..480724f260a 100644 --- a/spec/factories/ci/test_case.rb +++ b/spec/factories/ci/unit_test.rb @@ -1,8 +1,10 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_test_case, class: 'Ci::TestCase' do + factory :ci_unit_test, class: 'Ci::UnitTest' do project + suite_name { 'rspec' } + name { 'Math#add returns sum' } key_hash { Digest::SHA256.hexdigest(SecureRandom.hex) } end end diff --git a/spec/factories/ci/test_case_failure.rb b/spec/factories/ci/unit_test_failure.rb index 11fb002804b..07cd3419754 100644 --- a/spec/factories/ci/test_case_failure.rb +++ b/spec/factories/ci/unit_test_failure.rb @@ -1,9 +1,9 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_test_case_failure, class: 'Ci::TestCaseFailure' do + factory :ci_unit_test_failure, class: 'Ci::UnitTestFailure' do build factory: :ci_build - test_case factory: :ci_test_case + unit_test factory: :ci_unit_test failed_at { Time.current } end end diff --git a/spec/factories/clusters/applications/helm.rb b/spec/factories/clusters/applications/helm.rb index 01df5cc677d..1ff1292c36e 100644 --- a/spec/factories/clusters/applications/helm.rb +++ b/spec/factories/clusters/applications/helm.rb @@ -4,18 +4,26 @@ FactoryBot.define do factory :clusters_applications_helm, class: 'Clusters::Applications::Helm' do cluster factory: %i(cluster provided_by_gcp) - before(:create) do - allow(Gitlab::Kubernetes::Helm::V2::Certificate).to receive(:generate_root) - .and_return( - double( - key_string: File.read(Rails.root.join('spec/fixtures/clusters/sample_key.key')), - cert_string: File.read(Rails.root.join('spec/fixtures/clusters/sample_cert.pem')) + transient do + helm_installed { true } + end + + before(:create) do |_record, evaluator| + if evaluator.helm_installed + allow(Gitlab::Kubernetes::Helm::V2::Certificate).to receive(:generate_root) + .and_return( + double( + key_string: File.read(Rails.root.join('spec/fixtures/clusters/sample_key.key')), + cert_string: File.read(Rails.root.join('spec/fixtures/clusters/sample_cert.pem')) + ) ) - ) + end end - after(:create) do - allow(Gitlab::Kubernetes::Helm::V2::Certificate).to receive(:generate_root).and_call_original + after(:create) do |_record, evaluator| + if evaluator.helm_installed + allow(Gitlab::Kubernetes::Helm::V2::Certificate).to receive(:generate_root).and_call_original + end end trait :not_installable do @@ -69,19 +77,28 @@ FactoryBot.define do status { 10 } end + trait :externally_installed do + status { 11 } + end + trait :timed_out do installing updated_at { ClusterWaitForAppInstallationWorker::TIMEOUT.ago } end + # Common trait used by the apps below + trait :no_helm_installed do + cluster factory: %i(cluster provided_by_gcp) + + transient do + helm_installed { false } + end + end + factory :clusters_applications_ingress, class: 'Clusters::Applications::Ingress' do modsecurity_enabled { false } cluster factory: %i(cluster with_installed_helm provided_by_gcp) - trait :no_helm_installed do - cluster factory: %i(cluster provided_by_gcp) - end - trait :modsecurity_blocking do modsecurity_enabled { true } modsecurity_mode { :blocking } @@ -104,62 +121,34 @@ FactoryBot.define do factory :clusters_applications_cert_manager, class: 'Clusters::Applications::CertManager' do email { 'admin@example.com' } cluster factory: %i(cluster with_installed_helm provided_by_gcp) - - trait :no_helm_installed do - cluster factory: %i(cluster provided_by_gcp) - end end factory :clusters_applications_elastic_stack, class: 'Clusters::Applications::ElasticStack' do cluster factory: %i(cluster with_installed_helm provided_by_gcp) - - trait :no_helm_installed do - cluster factory: %i(cluster provided_by_gcp) - end end factory :clusters_applications_crossplane, class: 'Clusters::Applications::Crossplane' do stack { 'gcp' } cluster factory: %i(cluster with_installed_helm provided_by_gcp) - - trait :no_helm_installed do - cluster factory: %i(cluster provided_by_gcp) - end end factory :clusters_applications_prometheus, class: 'Clusters::Applications::Prometheus' do cluster factory: %i(cluster with_installed_helm provided_by_gcp) - - trait :no_helm_installed do - cluster factory: %i(cluster provided_by_gcp) - end end factory :clusters_applications_runner, class: 'Clusters::Applications::Runner' do runner factory: %i(ci_runner) cluster factory: %i(cluster with_installed_helm provided_by_gcp) - - trait :no_helm_installed do - cluster factory: %i(cluster provided_by_gcp) - end end factory :clusters_applications_knative, class: 'Clusters::Applications::Knative' do hostname { 'example.com' } cluster factory: %i(cluster with_installed_helm provided_by_gcp) - - trait :no_helm_installed do - cluster factory: %i(cluster provided_by_gcp) - end end factory :clusters_applications_jupyter, class: 'Clusters::Applications::Jupyter' do oauth_application factory: :oauth_application cluster factory: %i(cluster with_installed_helm provided_by_gcp project) - - trait :no_helm_installed do - cluster factory: %i(cluster provided_by_gcp) - end end factory :clusters_applications_fluentd, class: 'Clusters::Applications::Fluentd' do @@ -167,18 +156,10 @@ FactoryBot.define do waf_log_enabled { true } cilium_log_enabled { true } cluster factory: %i(cluster with_installed_helm provided_by_gcp) - - trait :no_helm_installed do - cluster factory: %i(cluster provided_by_gcp) - end end factory :clusters_applications_cilium, class: 'Clusters::Applications::Cilium' do cluster factory: %i(cluster with_installed_helm provided_by_gcp) - - trait :no_helm_installed do - cluster factory: %i(cluster provided_by_gcp) - end end end end diff --git a/spec/factories/clusters/integrations/prometheus.rb b/spec/factories/clusters/integrations/prometheus.rb new file mode 100644 index 00000000000..1f0bb1ed512 --- /dev/null +++ b/spec/factories/clusters/integrations/prometheus.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :clusters_integrations_prometheus, class: 'Clusters::Integrations::Prometheus' do + cluster factory: %i(cluster provided_by_gcp) + enabled { true } + + trait :disabled do + enabled { false } + end + end +end diff --git a/spec/factories/draft_note.rb b/spec/factories/draft_note.rb index 67a3377a39f..cde8831f169 100644 --- a/spec/factories/draft_note.rb +++ b/spec/factories/draft_note.rb @@ -9,17 +9,30 @@ FactoryBot.define do transient do line_number { 14 } diff_refs { merge_request.try(:diff_refs) } + path { "files/ruby/popen.rb" } end position do Gitlab::Diff::Position.new( - old_path: "files/ruby/popen.rb", - new_path: "files/ruby/popen.rb", + old_path: path, + new_path: path, old_line: nil, new_line: line_number, diff_refs: diff_refs ) end + + factory :draft_note_on_image_diff do + transient do + path { "files/images/any_image.png" } + end + + position do + association(:image_diff_position, + file: path, + diff_refs: diff_refs) + end + end end factory :draft_note_on_discussion, traits: [:on_discussion] diff --git a/spec/factories/events.rb b/spec/factories/events.rb index 6c9f1ba0137..c9e4ada3ffa 100644 --- a/spec/factories/events.rb +++ b/spec/factories/events.rb @@ -27,17 +27,20 @@ FactoryBot.define do factory :wiki_page_event do action { :created } + # rubocop: disable FactoryBot/InlineAssociation + # A persistent project is needed to have a wiki page being created properly. project { @overrides[:wiki_page]&.container || create(:project, :wiki_repo) } - target { create(:wiki_page_meta, :for_wiki_page, wiki_page: wiki_page) } + # rubocop: enable FactoryBot/InlineAssociation + target { association(:wiki_page_meta, :for_wiki_page, wiki_page: wiki_page) } transient do - wiki_page { create(:wiki_page, container: project) } + wiki_page { association(:wiki_page, container: project) } end end trait :has_design do transient do - design { create(:design, issue: create(:issue, project: project)) } + design { association(:design, issue: association(:issue, project: project)) } end end @@ -45,7 +48,7 @@ FactoryBot.define do has_design transient do - note { create(:note, author: author, project: project, noteable: design) } + note { association(:note, author: author, project: project, noteable: design) } end action { :commented } diff --git a/spec/factories/git_wiki_commit_details.rb b/spec/factories/git_wiki_commit_details.rb index b35f102fd4d..fb3f2954b12 100644 --- a/spec/factories/git_wiki_commit_details.rb +++ b/spec/factories/git_wiki_commit_details.rb @@ -5,7 +5,7 @@ FactoryBot.define do skip_create transient do - author { create(:user) } + author { association(:user) } end sequence(:message) { |n| "Commit message #{n}" } diff --git a/spec/factories/gitaly/commit.rb b/spec/factories/gitaly/commit.rb index 2ed201e9aac..4e8220e449a 100644 --- a/spec/factories/gitaly/commit.rb +++ b/spec/factories/gitaly/commit.rb @@ -14,7 +14,7 @@ FactoryBot.define do subject { "My commit" } body { subject + "\nMy body" } - author { build(:gitaly_commit_author) } - committer { build(:gitaly_commit_author) } + author { association(:gitaly_commit_author) } + committer { association(:gitaly_commit_author) } end end diff --git a/spec/factories/gitlab/database/background_migration/batched_migrations.rb b/spec/factories/gitlab/database/background_migration/batched_migrations.rb index b45f6ff037b..49cbdc5a8fb 100644 --- a/spec/factories/gitlab/database/background_migration/batched_migrations.rb +++ b/spec/factories/gitlab/database/background_migration/batched_migrations.rb @@ -9,5 +9,6 @@ FactoryBot.define do job_class_name { 'CopyColumnUsingBackgroundMigrationJob' } table_name { :events } column_name { :id } + total_tuple_count { 10_000 } end end diff --git a/spec/factories/group_group_links.rb b/spec/factories/group_group_links.rb index 6f98886faff..2a582d8525b 100644 --- a/spec/factories/group_group_links.rb +++ b/spec/factories/group_group_links.rb @@ -2,8 +2,8 @@ FactoryBot.define do factory :group_group_link do - shared_group { create(:group) } - shared_with_group { create(:group) } + shared_group { association(:group) } + shared_with_group { association(:group) } group_access { Gitlab::Access::DEVELOPER } trait(:guest) { group_access { Gitlab::Access::GUEST } } diff --git a/spec/factories/import_export_uploads.rb b/spec/factories/import_export_uploads.rb index 8521411e0e8..e1dd0c10ff2 100644 --- a/spec/factories/import_export_uploads.rb +++ b/spec/factories/import_export_uploads.rb @@ -2,6 +2,6 @@ FactoryBot.define do factory :import_export_upload do - project { create(:project) } + project { association(:project) } end end diff --git a/spec/factories/packages.rb b/spec/factories/packages.rb index 882bac1daa9..9edee735af9 100644 --- a/spec/factories/packages.rb +++ b/spec/factories/packages.rb @@ -16,6 +16,10 @@ FactoryBot.define do status { :processing } end + trait :error do + status { :error } + end + factory :maven_package do maven_metadatum @@ -36,8 +40,8 @@ FactoryBot.define do package_type { :rubygems } after :create do |package| - create :package_file, :gem, package: package - create :package_file, :gemspec, package: package + create :package_file, package.processing? ? :unprocessed_gem : :gem, package: package + create :package_file, :gemspec, package: package unless package.processing? end trait(:with_metadatum) do diff --git a/spec/factories/packages/package_file.rb b/spec/factories/packages/package_file.rb index 6d8b119040e..74400975670 100644 --- a/spec/factories/packages/package_file.rb +++ b/spec/factories/packages/package_file.rb @@ -125,6 +125,9 @@ FactoryBot.define do trait(:source) do file_name { 'sample_1.2.3~alpha2.tar.xz' } + file_md5 { 'd79b34f58f61ff4ad696d9bd0b8daa68' } + file_sha1 { '5f8bba5574eb01ac3b1f5e2988e8c29307788236' } + file_sha256 { 'b5a599e88e7cbdda3bde808160a21ba1dd1ec76b2ec8d4912aae769648d68362' } transient do file_metadatum_trait { :source } @@ -133,6 +136,9 @@ FactoryBot.define do trait(:dsc) do file_name { 'sample_1.2.3~alpha2.dsc' } + file_md5 { '3b0817804f669e16cdefac583ad88f0e' } + file_sha1 { '32ecbd674f0bfd310df68484d87752490685a8d6' } + file_sha256 { '844f79825b7e8aaa191e514b58a81f9ac1e58e2180134b0c9512fa66d896d7ba' } transient do file_metadatum_trait { :dsc } @@ -141,6 +147,9 @@ FactoryBot.define do trait(:deb) do file_name { 'libsample0_1.2.3~alpha2_amd64.deb' } + file_md5 { 'fb0842b21adc44207996296fe14439dd' } + file_sha1 { '5248b95600e85bfe7f63c0dfce330a75f5777366' } + file_sha256 { '1c383a525bfcba619c7305ccd106d61db501a6bbaf0003bf8d0c429fbdb7fcc1' } transient do file_metadatum_trait { :deb } @@ -149,6 +158,9 @@ FactoryBot.define do trait(:deb2) do file_name { 'sample-dev_1.2.3~binary_amd64.deb' } + file_md5 { 'd2afbd28e4d74430d22f9504e18bfdf5' } + file_sha1 { 'f81e4f66c8c6bb899653a3340c157965ee69634f' } + file_sha256 { '9fbeee2191ce4dab5288fad5ecac1bd369f58fef9a992a880eadf0caf25f086d' } transient do file_metadatum_trait { :deb } @@ -157,6 +169,9 @@ FactoryBot.define do trait(:udeb) do file_name { 'sample-udeb_1.2.3~alpha2_amd64.udeb' } + file_md5 { '72b1dd7d98229e2fb0355feda1d3a165' } + file_sha1 { 'e42e8f2fe04ed1bb73b44a187674480d0e49dcba' } + file_sha256 { '2b0c152b3ab4cc07663350424de972c2b7621d69fe6df2e0b94308a191e4632f' } transient do file_metadatum_trait { :udeb } @@ -165,6 +180,9 @@ FactoryBot.define do trait(:buildinfo) do file_name { 'sample_1.2.3~alpha2_amd64.buildinfo' } + file_md5 { '4e085dd67c120ca967ec314f65770a42' } + file_sha1 { '0d47e899f3cc67a2253a4629456ff927e0db5c60' } + file_sha256 { 'f9900d3c94e94b329232668dcbef3dba2d96c07147b15b6dc0533452e4dd8a43' } transient do file_metadatum_trait { :buildinfo } @@ -229,6 +247,14 @@ FactoryBot.define do size { 4.kilobytes } end + trait(:unprocessed_gem) do + package + file_fixture { 'spec/fixtures/packages/rubygems/package.gem' } + file_name { 'package.gem' } + file_sha1 { '5fe852b2a6abd96c22c11fa1ff2fb19d9ce58b57' } + size { 4.kilobytes } + end + trait(:gemspec) do package file_fixture { 'spec/fixtures/packages/rubygems/package.gemspec' } diff --git a/spec/factories/sequences.rb b/spec/factories/sequences.rb index f9952cd9966..b276e6f8cfc 100644 --- a/spec/factories/sequences.rb +++ b/spec/factories/sequences.rb @@ -19,4 +19,5 @@ FactoryBot.define do sequence(:wip_title) { |n| "WIP: #{n}" } sequence(:jira_title) { |n| "[PROJ-#{n}]: fix bug" } sequence(:jira_branch) { |n| "feature/PROJ-#{n}" } + sequence(:job_name) { |n| "job #{n}" } end diff --git a/spec/factories/services.rb b/spec/factories/services.rb index 18d3b2d99b7..25ef75880bb 100644 --- a/spec/factories/services.rb +++ b/spec/factories/services.rb @@ -56,20 +56,24 @@ FactoryBot.define do api_url { nil } username { 'jira_username' } password { 'jira_password' } + jira_issue_transition_automatic { false } jira_issue_transition_id { '56-1' } issues_enabled { false } project_key { nil } vulnerabilities_enabled { false } vulnerabilities_issuetype { nil } + deployment_type { 'cloud' } end before(:create) do |service, evaluator| if evaluator.create_data create(:jira_tracker_data, service: service, - url: evaluator.url, api_url: evaluator.api_url, jira_issue_transition_id: evaluator.jira_issue_transition_id, + url: evaluator.url, api_url: evaluator.api_url, + jira_issue_transition_automatic: evaluator.jira_issue_transition_automatic, + jira_issue_transition_id: evaluator.jira_issue_transition_id, username: evaluator.username, password: evaluator.password, issues_enabled: evaluator.issues_enabled, project_key: evaluator.project_key, vulnerabilities_enabled: evaluator.vulnerabilities_enabled, - vulnerabilities_issuetype: evaluator.vulnerabilities_issuetype + vulnerabilities_issuetype: evaluator.vulnerabilities_issuetype, deployment_type: evaluator.deployment_type ) end end diff --git a/spec/factories/subscriptions.rb b/spec/factories/subscriptions.rb index 2b652cd57bf..8ba96d9fa29 100644 --- a/spec/factories/subscriptions.rb +++ b/spec/factories/subscriptions.rb @@ -5,5 +5,11 @@ FactoryBot.define do project user { project.creator } subscribable factory: :issue + + trait :group_label do + project { nil } + user { association(:user) } + subscribable factory: :group_label + end end end diff --git a/spec/factories/timelogs.rb b/spec/factories/timelogs.rb index 5d34acc635d..204cb808c8e 100644 --- a/spec/factories/timelogs.rb +++ b/spec/factories/timelogs.rb @@ -1,11 +1,22 @@ # frozen_string_literal: true -# Read about factories at https://github.com/thoughtbot/factory_bot - FactoryBot.define do factory :timelog do time_spent { 3600 } - issue - user { issue.project.creator } + for_issue + + factory :issue_timelog, traits: [:for_issue] + factory :merge_request_timelog, traits: [:for_merge_request] + + trait :for_issue do + issue + user { issue.author } + end + + trait :for_merge_request do + merge_request + issue { nil } + user { merge_request.author } + end end end diff --git a/spec/factories/users/in_product_marketing_email.rb b/spec/factories/users/in_product_marketing_email.rb new file mode 100644 index 00000000000..c86c469ff31 --- /dev/null +++ b/spec/factories/users/in_product_marketing_email.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :in_product_marketing_email, class: 'Users::InProductMarketingEmail' do + user + + track { 'create' } + series { 0 } + end +end |