diff options
Diffstat (limited to 'spec/factories')
33 files changed, 219 insertions, 82 deletions
diff --git a/spec/factories/ci/build_trace_chunks.rb b/spec/factories/ci/build_trace_chunks.rb index 115eb32111c..64a297932de 100644 --- a/spec/factories/ci/build_trace_chunks.rb +++ b/spec/factories/ci/build_trace_chunks.rb @@ -23,7 +23,7 @@ FactoryBot.define do end trait :database_with_data do - data_store { :database} + data_store { :database } transient do initial_data { 'test data' } @@ -55,7 +55,7 @@ FactoryBot.define do end trait :persisted do - data_store { :database} + data_store { :database } transient do initial_data { 'test data' } diff --git a/spec/factories/ci/builds.rb b/spec/factories/ci/builds.rb index d684f79a518..8c2edc8cd9f 100644 --- a/spec/factories/ci/builds.rb +++ b/spec/factories/ci/builds.rb @@ -129,8 +129,8 @@ FactoryBot.define do { script: %w(ls), environment: { name: 'staging', - action: 'stop', - url: 'http://staging.example.com/$CI_JOB_NAME' } + action: 'stop', + url: 'http://staging.example.com/$CI_JOB_NAME' } } end end @@ -141,9 +141,9 @@ FactoryBot.define do { script: %w(ls), environment: { name: 'test_portal', - action: 'start', - url: 'http://staging.example.com/$CI_JOB_NAME', - deployment_tier: 'testing' } + action: 'start', + url: 'http://staging.example.com/$CI_JOB_NAME', + deployment_tier: 'testing' } } end end @@ -155,7 +155,7 @@ FactoryBot.define do { script: %w(ls), environment: { name: 'production', - url: 'http://prd.example.com/$CI_JOB_NAME' } + url: 'http://prd.example.com/$CI_JOB_NAME' } } end end @@ -167,8 +167,8 @@ FactoryBot.define do { script: %w(ls), environment: { name: 'review/$CI_COMMIT_REF_NAME', - url: 'http://staging.example.com/$CI_JOB_NAME', - on_stop: 'stop_review_app' } + url: 'http://staging.example.com/$CI_JOB_NAME', + on_stop: 'stop_review_app' } } end end @@ -181,8 +181,8 @@ FactoryBot.define do { script: %w(ls), environment: { name: 'review/$CI_COMMIT_REF_NAME', - url: 'http://staging.example.com/$CI_JOB_NAME', - action: 'stop' } + url: 'http://staging.example.com/$CI_JOB_NAME', + action: 'stop' } } end end diff --git a/spec/factories/ci/job_artifacts.rb b/spec/factories/ci/job_artifacts.rb index 114ad3a5847..f8b964cf8e0 100644 --- a/spec/factories/ci/job_artifacts.rb +++ b/spec/factories/ci/job_artifacts.rb @@ -15,7 +15,7 @@ FactoryBot.define do end trait :remote_store do - file_store { JobArtifactUploader::Store::REMOTE} + file_store { JobArtifactUploader::Store::REMOTE } end after :build do |artifact| @@ -102,28 +102,6 @@ FactoryBot.define do end end - trait :zip_with_single_file do - file_type { :archive } - file_format { :zip } - - after(:build) do |artifact, evaluator| - artifact.file = fixture_file_upload( - Rails.root.join('spec/fixtures/lib/gitlab/ci/build/artifacts/adapters/zip_stream/single_file.zip'), - 'application/zip') - end - end - - trait :zip_with_multiple_files do - file_type { :archive } - file_format { :zip } - - after(:build) do |artifact, evaluator| - artifact.file = fixture_file_upload( - Rails.root.join('spec/fixtures/lib/gitlab/ci/build/artifacts/adapters/zip_stream/multiple_files.zip'), - 'application/zip') - end - end - trait :junit do file_type { :junit } file_format { :gzip } @@ -384,6 +362,15 @@ FactoryBot.define do end end + trait :common_security_report_without_top_level_scanner do + common_security_report + + after(:build) do |artifact, _| + artifact.file = fixture_file_upload( + Rails.root.join('spec/fixtures/security_reports/master/gl-common-scanning-report-without-top-level-scanner.json'), 'application/json') + end + end + trait :common_security_report_with_blank_names do file_format { :raw } file_type { :dependency_scanning } diff --git a/spec/factories/ci/pipeline_artifacts.rb b/spec/factories/ci/pipeline_artifacts.rb index 85277ce6fbf..d096f149c3a 100644 --- a/spec/factories/ci/pipeline_artifacts.rb +++ b/spec/factories/ci/pipeline_artifacts.rb @@ -30,7 +30,7 @@ FactoryBot.define do end trait :remote_store do - file_store { ::ObjectStorage::Store::REMOTE} + file_store { ::ObjectStorage::Store::REMOTE } end trait :with_coverage_report do diff --git a/spec/factories/ci/reports/sbom/components.rb b/spec/factories/ci/reports/sbom/components.rb new file mode 100644 index 00000000000..317e1c863cf --- /dev/null +++ b/spec/factories/ci/reports/sbom/components.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :ci_reports_sbom_component, class: '::Gitlab::Ci::Reports::Sbom::Component' do + type { :library } + sequence(:name) { |n| "component-#{n}" } + sequence(:version) { |n| "v0.0.#{n}" } + + skip_create + + initialize_with do + ::Gitlab::Ci::Reports::Sbom::Component.new( + type: type, + name: name, + version: version + ) + end + end +end diff --git a/spec/factories/ci/reports/sbom/sources.rb b/spec/factories/ci/reports/sbom/sources.rb new file mode 100644 index 00000000000..9093aba86a6 --- /dev/null +++ b/spec/factories/ci/reports/sbom/sources.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :ci_reports_sbom_source, class: '::Gitlab::Ci::Reports::Sbom::Source' do + type { :dependency_scanning } + + transient do + sequence(:input_file_path) { |n| "subproject-#{n}/package-lock.json" } + sequence(:source_file_path) { |n| "subproject-#{n}/package.json" } + end + + data do + { + 'category' => 'development', + 'input_file' => { 'path' => input_file_path }, + 'source_file' => { 'path' => source_file_path }, + 'package_manager' => { 'name' => 'npm' }, + 'language' => { 'name' => 'JavaScript' } + } + end + + fingerprint { Digest::SHA256.hexdigest(data.to_json) } + + skip_create + + initialize_with do + ::Gitlab::Ci::Reports::Sbom::Source.new( + type: type, + data: data, + fingerprint: fingerprint + ) + end + end +end diff --git a/spec/factories/commit_statuses.rb b/spec/factories/commit_statuses.rb index fa10b37cdbf..a60f0a3879a 100644 --- a/spec/factories/commit_statuses.rb +++ b/spec/factories/commit_statuses.rb @@ -6,10 +6,10 @@ FactoryBot.define do stage { 'test' } stage_idx { 0 } status { 'success' } - description { 'commit status'} + description { 'commit status' } pipeline factory: :ci_pipeline - started_at { 'Tue, 26 Jan 2016 08:21:42 +0100'} - finished_at { 'Tue, 26 Jan 2016 08:23:42 +0100'} + started_at { 'Tue, 26 Jan 2016 08:21:42 +0100' } + finished_at { 'Tue, 26 Jan 2016 08:23:42 +0100' } trait :success do status { 'success' } @@ -56,12 +56,7 @@ FactoryBot.define do end after(:build) do |build, evaluator| - build.project = build.pipeline.project - end - - factory :generic_commit_status, class: 'GenericCommitStatus' do - name { 'generic' } - description { 'external commit status' } + build.project ||= build.pipeline.project end end end diff --git a/spec/factories/design_management/designs.rb b/spec/factories/design_management/designs.rb index 56a1b55b969..3d95c754a96 100644 --- a/spec/factories/design_management/designs.rb +++ b/spec/factories/design_management/designs.rb @@ -109,7 +109,7 @@ FactoryBot.define do repository = project.design_repository commit_version = ->(action) do - repository.multi_action( + repository.commit_files( evaluator.author, branch_name: 'master', message: "#{action.action} for #{design.filename}", diff --git a/spec/factories/design_management/versions.rb b/spec/factories/design_management/versions.rb index e505a77d6bd..9d965c6e86c 100644 --- a/spec/factories/design_management/versions.rb +++ b/spec/factories/design_management/versions.rb @@ -102,7 +102,7 @@ FactoryBot.define do end if actions.present? - repository.multi_action( + repository.commit_files( evaluator.author, branch_name: 'master', message: "created #{actions.size} files", @@ -123,7 +123,7 @@ FactoryBot.define do end end - sha = repository.multi_action( + sha = repository.commit_files( evaluator.author, branch_name: 'master', message: "edited #{version_actions.size} files", diff --git a/spec/factories/emails.rb b/spec/factories/emails.rb index b30fa8a5896..e51c3358a9b 100644 --- a/spec/factories/emails.rb +++ b/spec/factories/emails.rb @@ -6,6 +6,6 @@ FactoryBot.define do email { generate(:email_alias) } trait(:confirmed) { confirmed_at { Time.now } } - trait(:skip_validate) { to_create {|instance| instance.save!(validate: false) } } + trait(:skip_validate) { to_create { |instance| instance.save!(validate: false) } } end end diff --git a/spec/factories/environments.rb b/spec/factories/environments.rb index ccd2011eb8d..34843dab0fe 100644 --- a/spec/factories/environments.rb +++ b/spec/factories/environments.rb @@ -47,7 +47,7 @@ FactoryBot.define do pipeline = create(:ci_pipeline, project: environment.project) deployable = create(:ci_build, :success, name: "#{environment.name}:deploy", - pipeline: pipeline) + pipeline: pipeline) deployment = create(:deployment, :success, diff --git a/spec/factories/external_pull_requests.rb b/spec/factories/external_pull_requests.rb index 7a6e77f8572..470814f4360 100644 --- a/spec/factories/external_pull_requests.rb +++ b/spec/factories/external_pull_requests.rb @@ -12,6 +12,6 @@ FactoryBot.define do target_sha { 'a09386439ca39abe575675ffd4b89ae824fec22f' } status { :open } - trait(:closed) { status { 'closed'} } + trait(:closed) { status { 'closed' } } end end diff --git a/spec/factories/generic_commit_statuses.rb b/spec/factories/generic_commit_statuses.rb new file mode 100644 index 00000000000..ea86dddcaf8 --- /dev/null +++ b/spec/factories/generic_commit_statuses.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :generic_commit_status, class: 'GenericCommitStatus', parent: :commit_status do + name { 'generic' } + description { 'external commit status' } + end +end diff --git a/spec/factories/gitlab/database/postgres_index.rb b/spec/factories/gitlab/database/postgres_index.rb index 54bbb738512..8492b44c404 100644 --- a/spec/factories/gitlab/database/postgres_index.rb +++ b/spec/factories/gitlab/database/postgres_index.rb @@ -13,7 +13,7 @@ FactoryBot.define do exclusion { false } expression { false } partial { false } - definition { "CREATE INDEX #{identifier} ON #{tablename} (bar)"} + definition { "CREATE INDEX #{identifier} ON #{tablename} (bar)" } ondisk_size_bytes { 100.megabytes } end end diff --git a/spec/factories/group_members.rb b/spec/factories/group_members.rb index 4b1bf9a7d11..702db45554e 100644 --- a/spec/factories/group_members.rb +++ b/spec/factories/group_members.rb @@ -4,6 +4,7 @@ FactoryBot.define do factory :group_member do access_level { GroupMember::OWNER } source { association(:group) } + member_namespace_id { source.id } user trait(:guest) { access_level { GroupMember::GUEST } } diff --git a/spec/factories/groups.rb b/spec/factories/groups.rb index 152ae061605..6f9cf0ef895 100644 --- a/spec/factories/groups.rb +++ b/spec/factories/groups.rb @@ -106,9 +106,9 @@ FactoryBot.define do end create_graph( - parent: group, + parent: group, children: evaluator.children, - depth: evaluator.depth + depth: evaluator.depth ) end end diff --git a/spec/factories/ml/candidates.rb b/spec/factories/ml/candidates.rb new file mode 100644 index 00000000000..b5644ee3841 --- /dev/null +++ b/spec/factories/ml/candidates.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :ml_candidates, class: '::Ml::Candidate' do + association :experiment, factory: :ml_experiments + association :user + end +end diff --git a/spec/factories/ml/experiments.rb b/spec/factories/ml/experiments.rb new file mode 100644 index 00000000000..043ca712e60 --- /dev/null +++ b/spec/factories/ml/experiments.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :ml_experiments, class: '::Ml::Experiment' do + sequence(:name) { |n| "experiment#{n}" } + association :project + association :user + end +end diff --git a/spec/factories/namespaces/sync_events.rb b/spec/factories/namespaces/sync_events.rb new file mode 100644 index 00000000000..63bb16958a3 --- /dev/null +++ b/spec/factories/namespaces/sync_events.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :sync_event, class: 'Namespaces::SyncEvent' do + association :namespace, factory: :namespace, strategy: :build + end +end diff --git a/spec/factories/onboarding_progresses.rb b/spec/factories/onboarding/progresses.rb index e39bad91b19..15f58b482d3 100644 --- a/spec/factories/onboarding_progresses.rb +++ b/spec/factories/onboarding/progresses.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :onboarding_progress do + factory :onboarding_progress, class: 'Onboarding::Progress' do namespace end end diff --git a/spec/factories/packages/debian/component_file.rb b/spec/factories/packages/debian/component_file.rb index eeba64ba5d2..a2422e4a126 100644 --- a/spec/factories/packages/debian/component_file.rb +++ b/spec/factories/packages/debian/component_file.rb @@ -30,10 +30,18 @@ FactoryBot.define do trait(:sources) do file_type { :sources } architecture { nil } + file_fixture { 'spec/fixtures/packages/debian/distribution/Sources' } end trait(:di_packages) do file_type { :di_packages } + file_fixture { 'spec/fixtures/packages/debian/distribution/D-I-Packages' } + end + + trait(:older_sha256) do + created_at { '2020-01-24T08:00:00Z' } + file_sha256 { '157a1ad2b9102038560eea56771913b312ebf25093f5ef3b9842021c639c880d' } + file_fixture { 'spec/fixtures/packages/debian/distribution/OtherSHA256' } end trait(:object_storage) do diff --git a/spec/factories/packages/dependencies.rb b/spec/factories/packages/dependencies.rb index a62d48c2e73..c99f11d6db3 100644 --- a/spec/factories/packages/dependencies.rb +++ b/spec/factories/packages/dependencies.rb @@ -2,11 +2,11 @@ FactoryBot.define do factory :packages_dependency, class: 'Packages::Dependency' do - sequence(:name) { |n| "@test/package-#{n}"} + sequence(:name) { |n| "@test/package-#{n}" } sequence(:version_pattern) { |n| "~6.2.#{n}" } trait(:rubygems) do - sequence(:name) { |n| "gem-dependency-#{n}"} + sequence(:name) { |n| "gem-dependency-#{n}" } end end end diff --git a/spec/factories/packages/package_files.rb b/spec/factories/packages/package_files.rb index 5eac0036b91..7d3dd274777 100644 --- a/spec/factories/packages/package_files.rb +++ b/spec/factories/packages/package_files.rb @@ -337,6 +337,14 @@ FactoryBot.define do size { 3989.bytes } end + trait(:rpm) do + package + file_fixture { 'spec/fixtures/packages/rpm/hello-0.0.1-1.fc29.x86_64.rpm' } + file_name { 'hello-0.0.1-1.fc29.x86_64.rpm' } + file_sha1 { '5fe852b2a6abd96c22c11fa1ff2fb19d9ce58b57' } + size { 115.kilobytes } + end + trait(:object_storage) do file_store { Packages::PackageFileUploader::Store::REMOTE } end diff --git a/spec/factories/packages/package_tags.rb b/spec/factories/packages/package_tags.rb index 3d2eea4a73b..1a40d5d600f 100644 --- a/spec/factories/packages/package_tags.rb +++ b/spec/factories/packages/package_tags.rb @@ -3,6 +3,6 @@ FactoryBot.define do factory :packages_tag, class: 'Packages::Tag' do package - sequence(:name) { |n| "tag-#{n}"} + sequence(:name) { |n| "tag-#{n}" } end end diff --git a/spec/factories/packages/packages.rb b/spec/factories/packages/packages.rb index 90c68074a3b..8074e505243 100644 --- a/spec/factories/packages/packages.rb +++ b/spec/factories/packages/packages.rb @@ -24,6 +24,10 @@ FactoryBot.define do status { :pending_destruction } end + trait :last_downloaded_at do + last_downloaded_at { 2.days.ago } + end + factory :maven_package do maven_metadatum @@ -55,6 +59,12 @@ FactoryBot.define do end end + factory :rpm_package do + sequence(:name) { |n| "package-#{n}" } + sequence(:version) { |n| "v1.0.#{n}" } + package_type { :rpm } + end + factory :debian_package do sequence(:name) { |n| "package-#{n}" } sequence(:version) { |n| "1.0-#{n}" } @@ -115,7 +125,7 @@ FactoryBot.define do end factory :npm_package do - sequence(:name) { |n| "@#{project.root_namespace.path}/package-#{n}"} + sequence(:name) { |n| "@#{project.root_namespace.path}/package-#{n}" } sequence(:version) { |n| "1.0.#{n}" } package_type { :npm } @@ -153,7 +163,7 @@ FactoryBot.define do end factory :nuget_package do - sequence(:name) { |n| "NugetPackage#{n}"} + sequence(:name) { |n| "NugetPackage#{n}" } sequence(:version) { |n| "1.0.#{n}" } package_type { :nuget } @@ -175,7 +185,7 @@ FactoryBot.define do end factory :pypi_package do - sequence(:name) { |n| "pypi-package-#{n}"} + sequence(:name) { |n| "pypi-package-#{n}" } sequence(:version) { |n| "1.0.#{n}" } package_type { :pypi } @@ -193,7 +203,7 @@ FactoryBot.define do end factory :composer_package do - sequence(:name) { |n| "composer-package-#{n}"} + sequence(:name) { |n| "composer-package-#{n}" } sequence(:version) { |n| "1.0.#{n}" } package_type { :composer } @@ -210,7 +220,7 @@ FactoryBot.define do end factory :golang_package do - sequence(:name) { |n| "golang.org/x/pkg-#{n}"} + sequence(:name) { |n| "golang.org/x/pkg-#{n}" } sequence(:version) { |n| "v1.0.#{n}" } package_type { :golang } end diff --git a/spec/factories/packages/rpm/metadata.rb b/spec/factories/packages/rpm/metadata.rb new file mode 100644 index 00000000000..5ee85aed3bb --- /dev/null +++ b/spec/factories/packages/rpm/metadata.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :rpm_metadatum, class: 'Packages::Rpm::Metadatum' do + package { association(:rpm_package) } + release { "#{rand(10)}.#{rand(10)}" } + summary { FFaker::Lorem.sentences(2).join } + description { FFaker::Lorem.sentences(4).join } + arch { FFaker::Lorem.word } + epoch { 0 } + end +end diff --git a/spec/factories/project_members.rb b/spec/factories/project_members.rb index ab1e45acc15..57f228650a1 100644 --- a/spec/factories/project_members.rb +++ b/spec/factories/project_members.rb @@ -4,6 +4,7 @@ FactoryBot.define do factory :project_member do user source { association(:project) } + member_namespace_id { source.id } maintainer trait(:guest) { access_level { ProjectMember::GUEST } } diff --git a/spec/factories/projects.rb b/spec/factories/projects.rb index 95b72648cf5..871917a725e 100644 --- a/spec/factories/projects.rb +++ b/spec/factories/projects.rb @@ -35,6 +35,7 @@ FactoryBot.define do end metrics_dashboard_access_level { ProjectFeature::PRIVATE } operations_access_level { ProjectFeature::ENABLED } + monitor_access_level { ProjectFeature::ENABLED } container_registry_access_level { ProjectFeature::ENABLED } security_and_compliance_access_level { ProjectFeature::PRIVATE } environments_access_level { ProjectFeature::ENABLED } diff --git a/spec/factories/prometheus_alert.rb b/spec/factories/prometheus_alert.rb index ad3868c38ed..14fdd993c7a 100644 --- a/spec/factories/prometheus_alert.rb +++ b/spec/factories/prometheus_alert.rb @@ -15,7 +15,7 @@ FactoryBot.define do end trait :with_runbook_url do - runbook_url { 'https://runbooks.gitlab.com/metric_gt_1'} + runbook_url { 'https://runbooks.gitlab.com/metric_gt_1' } end end end diff --git a/spec/factories/prometheus_metrics.rb b/spec/factories/prometheus_metrics.rb index 503d392a524..e785bf2ac9d 100644 --- a/spec/factories/prometheus_metrics.rb +++ b/spec/factories/prometheus_metrics.rb @@ -9,7 +9,7 @@ FactoryBot.define do group { :business } project legend { 'legend' } - dashboard_path { '.gitlab/dashboards/dashboard_path.yml'} + dashboard_path { '.gitlab/dashboards/dashboard_path.yml' } trait :common do common { true } diff --git a/spec/factories/protected_branches.rb b/spec/factories/protected_branches.rb index bac1cf21596..425352783dd 100644 --- a/spec/factories/protected_branches.rb +++ b/spec/factories/protected_branches.rb @@ -6,11 +6,25 @@ FactoryBot.define do project transient do + ee { false } default_push_level { true } default_merge_level { true } default_access_level { true } end + after(:create) do |protected_branch, evaluator| + break unless protected_branch.project&.persisted? + + ProtectedBranches::CacheService.new(protected_branch.project).refresh + end + + after(:build) do |obj, ctx| + next if ctx.ee || !ctx.default_access_level + + obj.push_access_levels.new(access_level: Gitlab::Access::MAINTAINER) if ctx.default_push_level + obj.merge_access_levels.new(access_level: Gitlab::Access::MAINTAINER) if ctx.default_merge_level + end + trait :create_branch_on_repository do association :project, factory: [:project, :repository] @@ -25,59 +39,63 @@ FactoryBot.define do end end - trait :developers_can_push do + trait :maintainers_can_push do transient do default_push_level { false } end after(:build) do |protected_branch| - protected_branch.push_access_levels.new(access_level: Gitlab::Access::DEVELOPER) + protected_branch.push_access_levels.new(access_level: Gitlab::Access::MAINTAINER) end end - trait :developers_can_merge do + trait :maintainers_can_merge do transient do - default_merge_level { false } + default_push_level { false } end after(:build) do |protected_branch| - protected_branch.merge_access_levels.new(access_level: Gitlab::Access::DEVELOPER) + protected_branch.push_access_levels.new(access_level: Gitlab::Access::MAINTAINER) end end - trait :no_one_can_push do + trait :developers_can_push do transient do default_push_level { false } end after(:build) do |protected_branch| - protected_branch.push_access_levels.new(access_level: Gitlab::Access::NO_ACCESS) + protected_branch.push_access_levels.new(access_level: Gitlab::Access::DEVELOPER) end end - trait :maintainers_can_push do + trait :developers_can_merge do transient do - default_push_level { false } + default_merge_level { false } end after(:build) do |protected_branch| - protected_branch.push_access_levels.new(access_level: Gitlab::Access::MAINTAINER) + protected_branch.merge_access_levels.new(access_level: Gitlab::Access::DEVELOPER) end end - after(:build) do |protected_branch, evaluator| - if evaluator.default_access_level && evaluator.default_push_level - protected_branch.push_access_levels.new(access_level: Gitlab::Access::MAINTAINER) + trait :no_one_can_push do + transient do + default_push_level { false } end - if evaluator.default_access_level && evaluator.default_merge_level - protected_branch.merge_access_levels.new(access_level: Gitlab::Access::MAINTAINER) + after(:build) do |protected_branch| + protected_branch.push_access_levels.new(access_level: Gitlab::Access::NO_ACCESS) end end trait :no_one_can_merge do - after(:create) do |protected_branch| - protected_branch.merge_access_levels.first.update!(access_level: Gitlab::Access::NO_ACCESS) + transient do + default_merge_level { false } + end + + after(:build) do |protected_branch| + protected_branch.merge_access_levels.new(access_level: Gitlab::Access::NO_ACCESS) end end end diff --git a/spec/factories/users/ghost_user_migrations.rb b/spec/factories/users/ghost_user_migrations.rb new file mode 100644 index 00000000000..0fe7cded4f3 --- /dev/null +++ b/spec/factories/users/ghost_user_migrations.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :ghost_user_migration, class: 'Users::GhostUserMigration' do + association :user + initiator_user { association(:user) } + hard_delete { false } + end +end diff --git a/spec/factories/work_items.rb b/spec/factories/work_items.rb index 267ea9710b3..205b071a5d4 100644 --- a/spec/factories/work_items.rb +++ b/spec/factories/work_items.rb @@ -23,5 +23,9 @@ FactoryBot.define do issue_type { :incident } association :work_item_type, :default, :incident end + + trait :last_edited_by_user do + association :last_edited_by, factory: :user + end end end |