diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-20 16:49:51 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-20 16:49:51 +0300 |
commit | 71786ddc8e28fbd3cb3fcc4b3ff15e5962a1c82e (patch) | |
tree | 6a2d93ef3fb2d353bb7739e4b57e6541f51cdd71 /spec/factories | |
parent | a7253423e3403b8c08f8a161e5937e1488f5f407 (diff) |
Add latest changes from gitlab-org/gitlab@15-9-stable-eev15.9.0-rc42
Diffstat (limited to 'spec/factories')
29 files changed, 174 insertions, 54 deletions
diff --git a/spec/factories/abuse_reports.rb b/spec/factories/abuse_reports.rb index 4ae9b4def8e..355fb142994 100644 --- a/spec/factories/abuse_reports.rb +++ b/spec/factories/abuse_reports.rb @@ -6,5 +6,6 @@ FactoryBot.define do user message { 'User sends spam' } reported_from_url { 'http://gitlab.com' } + links_to_spam { ['https://gitlab.com/issue1', 'https://gitlab.com/issue2'] } end end diff --git a/spec/factories/airflow/dags.rb b/spec/factories/airflow/dags.rb new file mode 100644 index 00000000000..ca4276e2c8f --- /dev/null +++ b/spec/factories/airflow/dags.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :airflow_dags, class: '::Airflow::Dags' do + sequence(:dag_name) { |n| "dag_name_#{n}" } + + project + end +end diff --git a/spec/factories/analytics/cycle_analytics/project_stages.rb b/spec/factories/analytics/cycle_analytics/project_stages.rb deleted file mode 100644 index e673c4957b0..00000000000 --- a/spec/factories/analytics/cycle_analytics/project_stages.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -FactoryBot.define do - factory :cycle_analytics_project_stage, class: 'Analytics::CycleAnalytics::ProjectStage' do - project - sequence(:name) { |n| "Stage ##{n}" } - hidden { false } - issue_stage - value_stream { association(:cycle_analytics_project_value_stream, project: project) } - - trait :issue_stage do - start_event_identifier { Gitlab::Analytics::CycleAnalytics::StageEvents::IssueCreated.identifier } - end_event_identifier { Gitlab::Analytics::CycleAnalytics::StageEvents::IssueStageEnd.identifier } - end - end -end diff --git a/spec/factories/analytics/cycle_analytics/project_value_streams.rb b/spec/factories/analytics/cycle_analytics/project_value_streams.rb deleted file mode 100644 index 45a6470b0aa..00000000000 --- a/spec/factories/analytics/cycle_analytics/project_value_streams.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -FactoryBot.define do - factory :cycle_analytics_project_value_stream, class: 'Analytics::CycleAnalytics::ProjectValueStream' do - sequence(:name) { |n| "Value Stream ##{n}" } - - project - end -end diff --git a/spec/factories/analytics/cycle_analytics/stages.rb b/spec/factories/analytics/cycle_analytics/stages.rb new file mode 100644 index 00000000000..4f6f38f6f33 --- /dev/null +++ b/spec/factories/analytics/cycle_analytics/stages.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :cycle_analytics_stage, class: 'Analytics::CycleAnalytics::Stage' do + transient do + project { nil } + end + + sequence(:name) { |n| "Stage ##{n}" } + start_event_identifier { Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestCreated.identifier } + end_event_identifier { Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestMerged.identifier } + + namespace { association(:group) } + value_stream { association(:cycle_analytics_value_stream, namespace: namespace) } + + after(:build) do |stage, evaluator| + stage.namespace = evaluator.project.reload.project_namespace if evaluator.project + end + end +end diff --git a/spec/factories/analytics/cycle_analytics/value_streams.rb b/spec/factories/analytics/cycle_analytics/value_streams.rb new file mode 100644 index 00000000000..fcf8d8339ed --- /dev/null +++ b/spec/factories/analytics/cycle_analytics/value_streams.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :cycle_analytics_value_stream, class: 'Analytics::CycleAnalytics::ValueStream' do + sequence(:name) { |n| "Value Stream ##{n}" } + + namespace { association(:group) } + end +end diff --git a/spec/factories/bulk_import/entities.rb b/spec/factories/bulk_import/entities.rb index 66d212daaae..a662d42c7c9 100644 --- a/spec/factories/bulk_import/entities.rb +++ b/spec/factories/bulk_import/entities.rb @@ -8,7 +8,7 @@ FactoryBot.define do sequence(:source_full_path) { |n| "source-path-#{n}" } sequence(:destination_namespace) { |n| "destination-path-#{n}" } - destination_name { 'Imported Entity' } + destination_slug { 'imported-entity' } sequence(:source_xid) migrate_projects { true } diff --git a/spec/factories/ci/bridge.rb b/spec/factories/ci/bridge.rb index 6cbcabca7ab..49ac74f6f86 100644 --- a/spec/factories/ci/bridge.rb +++ b/spec/factories/ci/bridge.rb @@ -33,6 +33,14 @@ FactoryBot.define do end end + trait :retried do + retried { true } + end + + trait :retryable do + success + end + trait :created do status { 'created' } end diff --git a/spec/factories/ci/builds.rb b/spec/factories/ci/builds.rb index 78398fd7f20..224f460488b 100644 --- a/spec/factories/ci/builds.rb +++ b/spec/factories/ci/builds.rb @@ -7,7 +7,6 @@ FactoryBot.define do created_at { 'Di 29. Okt 09:50:00 CET 2013' } scheduling_type { 'stage' } pending - partition_id { pipeline.partition_id } options do { diff --git a/spec/factories/ci/pipelines.rb b/spec/factories/ci/pipelines.rb index eef5c593e0f..d68562c0aa5 100644 --- a/spec/factories/ci/pipelines.rb +++ b/spec/factories/ci/pipelines.rb @@ -237,7 +237,9 @@ FactoryBot.define do trait :with_job do after(:build) do |pipeline, evaluator| - pipeline.builds << build(:ci_build, pipeline: pipeline, project: pipeline.project) + stage = build(:ci_stage, pipeline: pipeline) + + pipeline.builds << build(:ci_build, pipeline: pipeline, project: pipeline.project, ci_stage: stage) end end diff --git a/spec/factories/ci/processable.rb b/spec/factories/ci/processable.rb index 76c7376d24a..49e66368f94 100644 --- a/spec/factories/ci/processable.rb +++ b/spec/factories/ci/processable.rb @@ -3,13 +3,37 @@ FactoryBot.define do factory :ci_processable, class: 'Ci::Processable' do name { 'processable' } - stage { 'test' } stage_idx { ci_stage.try(:position) || 0 } ref { 'master' } tag { false } pipeline factory: :ci_pipeline project { pipeline.project } scheduling_type { 'stage' } + partition_id { pipeline.partition_id } + + # This factory was updated to help with the efforts of the removal of `ci_builds.stage`: + # https://gitlab.com/gitlab-org/gitlab/-/issues/364377 + # These additions can be removed once the specs that use the stage attribute have been updated + + transient do + stage { 'test' } + end + + after(:build) do |processable, evaluator| + processable.stage = evaluator.stage + end + + before(:create) do |processable, evaluator| + next if processable.ci_stage + + if ci_stage = processable.pipeline.stages.find_by(name: evaluator.stage) + processable.ci_stage = ci_stage + else + processable.ci_stage = create(:ci_stage, pipeline: processable.pipeline, + project: processable.project || evaluator.project, + name: evaluator.stage, position: evaluator.stage_idx, status: 'created') + end + end trait :waiting_for_resource do status { 'waiting_for_resource' } diff --git a/spec/factories/ci/runner_machines.rb b/spec/factories/ci/runner_machines.rb index 09bf5d0844e..9d601caa634 100644 --- a/spec/factories/ci/runner_machines.rb +++ b/spec/factories/ci/runner_machines.rb @@ -3,6 +3,11 @@ FactoryBot.define do factory :ci_runner_machine, class: 'Ci::RunnerMachine' do runner factory: :ci_runner - machine_xid { "r_#{SecureRandom.hex.slice(0, 10)}" } + system_xid { "r_#{SecureRandom.hex.slice(0, 10)}" } + + trait :stale do + created_at { 1.year.ago } + contacted_at { Ci::RunnerMachine::STALE_TIMEOUT.ago } + end end end diff --git a/spec/factories/clusters/applications/helm.rb b/spec/factories/clusters/applications/helm.rb index 6a21df943f5..0647058d63a 100644 --- a/spec/factories/clusters/applications/helm.rb +++ b/spec/factories/clusters/applications/helm.rb @@ -98,11 +98,6 @@ FactoryBot.define do cluster factory: %i(cluster with_installed_helm provided_by_gcp) end - factory :clusters_applications_cert_manager, class: 'Clusters::Applications::CertManager' do - email { 'admin@example.com' } - cluster factory: %i(cluster with_installed_helm provided_by_gcp) - end - factory :clusters_applications_crossplane, class: 'Clusters::Applications::Crossplane' do stack { 'gcp' } cluster factory: %i(cluster with_installed_helm provided_by_gcp) @@ -125,9 +120,5 @@ FactoryBot.define do oauth_application factory: :oauth_application cluster factory: %i(cluster with_installed_helm provided_by_gcp project) end - - factory :clusters_applications_cilium, class: 'Clusters::Applications::Cilium' do - cluster factory: %i(cluster with_installed_helm provided_by_gcp) - end end end diff --git a/spec/factories/clusters/clusters.rb b/spec/factories/clusters/clusters.rb index 72424a3c321..32cd6beb7ea 100644 --- a/spec/factories/clusters/clusters.rb +++ b/spec/factories/clusters/clusters.rb @@ -94,13 +94,11 @@ FactoryBot.define do trait :with_all_applications do application_helm factory: %i(clusters_applications_helm installed) application_ingress factory: %i(clusters_applications_ingress installed) - application_cert_manager factory: %i(clusters_applications_cert_manager installed) application_crossplane factory: %i(clusters_applications_crossplane installed) application_prometheus factory: %i(clusters_applications_prometheus installed) application_runner factory: %i(clusters_applications_runner installed) application_jupyter factory: %i(clusters_applications_jupyter installed) application_knative factory: %i(clusters_applications_knative installed) - application_cilium factory: %i(clusters_applications_cilium installed) end trait :with_domain do diff --git a/spec/factories/commit_statuses.rb b/spec/factories/commit_statuses.rb index a60f0a3879a..7d0176d0683 100644 --- a/spec/factories/commit_statuses.rb +++ b/spec/factories/commit_statuses.rb @@ -10,6 +10,7 @@ FactoryBot.define do pipeline factory: :ci_pipeline started_at { 'Tue, 26 Jan 2016 08:21:42 +0100' } finished_at { 'Tue, 26 Jan 2016 08:23:42 +0100' } + partition_id { pipeline&.partition_id } trait :success do status { 'success' } diff --git a/spec/factories/gitlab/database/async_foreign_keys/postgres_async_foreign_key_validation.rb b/spec/factories/gitlab/database/async_foreign_keys/postgres_async_foreign_key_validation.rb new file mode 100644 index 00000000000..a61b5cde7a0 --- /dev/null +++ b/spec/factories/gitlab/database/async_foreign_keys/postgres_async_foreign_key_validation.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :postgres_async_foreign_key_validation, + class: 'Gitlab::Database::AsyncForeignKeys::PostgresAsyncForeignKeyValidation' do + sequence(:name) { |n| "fk_users_id_#{n}" } + table_name { "users" } + end +end diff --git a/spec/factories/lfs_objects.rb b/spec/factories/lfs_objects.rb index 59c6ea5f55a..630f775d231 100644 --- a/spec/factories/lfs_objects.rb +++ b/spec/factories/lfs_objects.rb @@ -20,4 +20,11 @@ FactoryBot.define do trait :object_storage do file_store { LfsObjectUploader::Store::REMOTE } end + + trait :with_lfs_object_dot_iso_file do + with_file + object_storage + oid { '91eff75a492a3ed0dfcb544d7f31326bc4014c8551849c192fd1e48d4dd2c897' } + size { 133 } + end end diff --git a/spec/factories/member_roles.rb b/spec/factories/member_roles.rb index 08df45a85f8..503438d2521 100644 --- a/spec/factories/member_roles.rb +++ b/spec/factories/member_roles.rb @@ -5,6 +5,7 @@ FactoryBot.define do namespace { association(:group) } base_access_level { Gitlab::Access::DEVELOPER } - trait(:guest) { base_access_level { GroupMember::GUEST } } + trait(:developer) { base_access_level { Gitlab::Access::DEVELOPER } } + trait(:guest) { base_access_level { Gitlab::Access::GUEST } } end end diff --git a/spec/factories/packages/debian/distribution.rb b/spec/factories/packages/debian/distribution.rb index 2142dba974b..48892d16efb 100644 --- a/spec/factories/packages/debian/distribution.rb +++ b/spec/factories/packages/debian/distribution.rb @@ -4,22 +4,24 @@ FactoryBot.define do factory :debian_project_distribution, class: 'Packages::Debian::ProjectDistribution' do container { association(:project) } - sequence(:codename) { |n| "project-dist-#{n}" } + sequence(:codename) { |n| "#{FFaker::Lorem.word}#{n}" } factory :debian_group_distribution, class: 'Packages::Debian::GroupDistribution' do container { association(:group) } + end - sequence(:codename) { |n| "group-dist-#{n}" } + trait(:with_suite) do + sequence(:suite) { |n| "#{FFaker::Lorem.word}#{n}" } end trait(:with_file) do file_signature do - <<~EOF + <<~FILESIGNATURE -----BEGIN PGP SIGNATURE----- ABC -----BEGIN PGP SIGNATURE----- - EOF + FILESIGNATURE end after(:build) do |distribution, evaluator| diff --git a/spec/factories/packages/debian/group_architecture.rb b/spec/factories/packages/debian/group_architecture.rb index 2582faae4ed..6f5267c7860 100644 --- a/spec/factories/packages/debian/group_architecture.rb +++ b/spec/factories/packages/debian/group_architecture.rb @@ -4,6 +4,6 @@ FactoryBot.define do factory :debian_group_architecture, class: 'Packages::Debian::GroupArchitecture' do distribution { association(:debian_group_distribution) } - sequence(:name) { |n| "group-arch-#{n}" } + sequence(:name) { |n| "#{FFaker::Lorem.word}#{n}" } end end diff --git a/spec/factories/packages/debian/group_component.rb b/spec/factories/packages/debian/group_component.rb index 92d438be389..f3605991a32 100644 --- a/spec/factories/packages/debian/group_component.rb +++ b/spec/factories/packages/debian/group_component.rb @@ -4,6 +4,6 @@ FactoryBot.define do factory :debian_group_component, class: 'Packages::Debian::GroupComponent' do distribution { association(:debian_group_distribution) } - sequence(:name) { |n| "group-component-#{n}" } + sequence(:name) { |n| "#{FFaker::Lorem.word}#{n}" } end end diff --git a/spec/factories/packages/debian/project_architecture.rb b/spec/factories/packages/debian/project_architecture.rb index d6985da4128..2bba8de2e7d 100644 --- a/spec/factories/packages/debian/project_architecture.rb +++ b/spec/factories/packages/debian/project_architecture.rb @@ -4,6 +4,6 @@ FactoryBot.define do factory :debian_project_architecture, class: 'Packages::Debian::ProjectArchitecture' do distribution { association(:debian_project_distribution) } - sequence(:name) { |n| "project-arch-#{n}" } + sequence(:name) { |n| "#{FFaker::Lorem.word}#{n}" } end end diff --git a/spec/factories/packages/debian/project_component.rb b/spec/factories/packages/debian/project_component.rb index a56aec4cef0..cb7501cd9f2 100644 --- a/spec/factories/packages/debian/project_component.rb +++ b/spec/factories/packages/debian/project_component.rb @@ -4,6 +4,6 @@ FactoryBot.define do factory :debian_project_component, class: 'Packages::Debian::ProjectComponent' do distribution { association(:debian_project_distribution) } - sequence(:name) { |n| "project-component-#{n}" } + sequence(:name) { |n| "#{FFaker::Lorem.word}#{n}" } end end diff --git a/spec/factories/packages/packages.rb b/spec/factories/packages/packages.rb index 1da4f0cedbc..d0fde0a16cd 100644 --- a/spec/factories/packages/packages.rb +++ b/spec/factories/packages/packages.rb @@ -66,13 +66,13 @@ FactoryBot.define do end factory :debian_package do - sequence(:name) { |n| "package-#{n}" } + sequence(:name) { |n| "#{FFaker::Lorem.word}#{n}" } sequence(:version) { |n| "1.0-#{n}" } package_type { :debian } transient do without_package_files { false } - file_metadatum_trait { :keep } + file_metadatum_trait { processing? ? :unknown : :keep } published_in { :create } end diff --git a/spec/factories/projects.rb b/spec/factories/projects.rb index 6e3a7a3f5ef..f113ca2425f 100644 --- a/spec/factories/projects.rb +++ b/spec/factories/projects.rb @@ -253,9 +253,35 @@ FactoryBot.define do create_templates { nil } create_branch { nil } create_tag { nil } + lfs { false } end after :create do |project, evaluator| + # Specify `lfs: true` to create the LfsObject for the LFS file in the test repo: + # https://gitlab.com/gitlab-org/gitlab-test/-/blob/master/files/lfs/lfs_object.iso + if evaluator.lfs + RSpec::Mocks.with_temporary_scope do + # If lfs object store is disabled we need to mock + unless Gitlab.config.lfs.object_store.enabled + config = Gitlab.config.lfs.object_store.merge('enabled' => true) + allow(LfsObjectUploader).to receive(:object_store_options).and_return(config) + Fog.mock! + Fog::Storage.new(LfsObjectUploader.object_store_credentials).tap do |connection| + connection.directories.create(key: config.remote_directory) # rubocop:disable Rails/SaveBang + + # Cleanup remaining files + connection.directories.each do |directory| + directory.files.map(&:destroy) + end + rescue Excon::Error::Conflict + end + end + + lfs_object = create(:lfs_object, :with_lfs_object_dot_iso_file) + create(:lfs_objects_project, project: project, lfs_object: lfs_object) + end + end + if evaluator.create_templates templates_path = "#{evaluator.create_templates}_templates" @@ -286,7 +312,6 @@ FactoryBot.define do "README on branch #{evaluator.create_branch}", message: 'Add README.md', branch_name: evaluator.create_branch) - end if evaluator.create_tag @@ -441,7 +466,9 @@ FactoryBot.define do trait :with_jira_integration do has_external_issue_tracker { true } - jira_integration + after :create do |project| + create(:jira_integration, project: project) + end end trait :with_prometheus_integration do diff --git a/spec/factories/projects/data_transfers.rb b/spec/factories/projects/data_transfers.rb new file mode 100644 index 00000000000..4184f475663 --- /dev/null +++ b/spec/factories/projects/data_transfers.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :project_data_transfer, class: 'Projects::DataTransfer' do + project factory: :project + namespace { project.root_namespace } + date { Time.current.utc.beginning_of_month } + end +end diff --git a/spec/factories/protected_tags/create_access_levels.rb b/spec/factories/protected_tags/create_access_levels.rb new file mode 100644 index 00000000000..07450b2789c --- /dev/null +++ b/spec/factories/protected_tags/create_access_levels.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :protected_tag_create_access_level, class: 'ProtectedTag::CreateAccessLevel' do + deploy_key { nil } + protected_tag + access_level { Gitlab::Access::DEVELOPER } + end +end diff --git a/spec/factories/users.rb b/spec/factories/users.rb index 2b53a469841..e641f925758 100644 --- a/spec/factories/users.rb +++ b/spec/factories/users.rb @@ -180,6 +180,10 @@ FactoryBot.define do provider { 'ldapmain' } end end + + trait :unconfirmed do + confirmed_at { nil } + end end factory :atlassian_user do diff --git a/spec/factories/work_items/widget_definitions.rb b/spec/factories/work_items/widget_definitions.rb new file mode 100644 index 00000000000..bbd7c1e7432 --- /dev/null +++ b/spec/factories/work_items/widget_definitions.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :widget_definition, class: 'WorkItems::WidgetDefinition' do + work_item_type + namespace + + name { 'Description' } + widget_type { 'description' } + end +end |