Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/factories')
-rw-r--r--spec/factories/ci/builds.rb25
-rw-r--r--spec/factories/ci/job_artifacts.rb2
-rw-r--r--spec/factories/ci/pipeline_metadata.rb2
-rw-r--r--spec/factories/ci/pipelines.rb10
-rw-r--r--spec/factories/ci/processable.rb2
-rw-r--r--spec/factories/ci/reports/codequality_degradations.rb9
-rw-r--r--spec/factories/ci/reports/sbom/components.rb14
-rw-r--r--spec/factories/ci/reports/sbom/reports.rb6
-rw-r--r--spec/factories/ci/secure_files.rb9
-rw-r--r--spec/factories/ci/stages.rb2
-rw-r--r--spec/factories/container_repositories.rb4
-rw-r--r--spec/factories/dependency_proxy.rb9
-rw-r--r--spec/factories/experiment_subjects.rb9
-rw-r--r--spec/factories/experiment_users.rb10
-rw-r--r--spec/factories/experiments.rb7
-rw-r--r--spec/factories/integrations.rb13
-rw-r--r--spec/factories/member_roles.rb2
-rw-r--r--spec/factories/merge_request_reviewers.rb9
-rw-r--r--spec/factories/packages/rpm/rpm_repository_files.rb9
-rw-r--r--spec/factories/project_hooks.rb4
-rw-r--r--spec/factories/projects.rb13
-rw-r--r--spec/factories/projects/import_export/export_relation.rb11
-rw-r--r--spec/factories/projects/import_export/relation_export.rb27
-rw-r--r--spec/factories/projects/import_export/relation_export_upload.rb8
-rw-r--r--spec/factories/projects/wiki_repositories.rb7
-rw-r--r--spec/factories/protected_branches.rb37
-rw-r--r--spec/factories/user_statuses.rb4
-rw-r--r--spec/factories/users.rb4
-rw-r--r--spec/factories/users/ghost_user_migrations.rb1
-rw-r--r--spec/factories/users/namespace_commit_emails.rb9
30 files changed, 201 insertions, 77 deletions
diff --git a/spec/factories/ci/builds.rb b/spec/factories/ci/builds.rb
index 9a3b2837ab8..b88d6b5fda4 100644
--- a/spec/factories/ci/builds.rb
+++ b/spec/factories/ci/builds.rb
@@ -24,6 +24,16 @@ FactoryBot.define do
project { pipeline.project }
+ trait :with_token do
+ transient do
+ generate_token { true }
+ end
+
+ after(:build) do |build, evaluator|
+ build.ensure_token if evaluator.generate_token
+ end
+ end
+
trait :degenerated do
options { nil }
yaml_variables { nil }
@@ -93,6 +103,7 @@ FactoryBot.define do
end
trait :pending do
+ with_token
queued_at { 'Di 29. Okt 09:50:59 CET 2013' }
status { 'pending' }
@@ -100,6 +111,7 @@ FactoryBot.define do
trait :created do
status { 'created' }
+ generate_token { false }
end
trait :preparing do
@@ -303,14 +315,11 @@ FactoryBot.define do
# Build deployment/environment relations if environment name is set
# to the job. If `build.deployment` has already been set, it doesn't
# build a new instance.
- environment = Gitlab::Ci::Pipeline::Seed::Environment.new(build).to_resource
+ Environments::CreateForBuildService.new.execute(build)
+ end
- build.assign_attributes(
- deployment: Gitlab::Ci::Pipeline::Seed::Deployment.new(build, environment).to_resource,
- metadata_attributes: {
- expanded_environment_name: environment.name
- }
- )
+ after(:create) do |build, evaluator|
+ Deployments::CreateForBuildService.new.execute(build)
end
end
@@ -716,7 +725,7 @@ FactoryBot.define do
trait :with_runner_session do
after(:build) do |build|
- build.build_runner_session(url: 'https://localhost')
+ build.build_runner_session(url: 'https://gitlab.example.com')
end
end
diff --git a/spec/factories/ci/job_artifacts.rb b/spec/factories/ci/job_artifacts.rb
index 304d77e8521..7569e832c60 100644
--- a/spec/factories/ci/job_artifacts.rb
+++ b/spec/factories/ci/job_artifacts.rb
@@ -20,6 +20,8 @@ FactoryBot.define do
after :build do |artifact|
artifact.project ||= artifact.job.project
+
+ artifact.job&.valid?
end
trait :raw do
diff --git a/spec/factories/ci/pipeline_metadata.rb b/spec/factories/ci/pipeline_metadata.rb
index 600cfaa92c6..7849fa1fd4b 100644
--- a/spec/factories/ci/pipeline_metadata.rb
+++ b/spec/factories/ci/pipeline_metadata.rb
@@ -2,7 +2,7 @@
FactoryBot.define do
factory :ci_pipeline_metadata, class: 'Ci::PipelineMetadata' do
- title { 'Pipeline title' }
+ name { 'Pipeline name' }
pipeline factory: :ci_empty_pipeline
project
diff --git a/spec/factories/ci/pipelines.rb b/spec/factories/ci/pipelines.rb
index 650b8647237..891628a0fc2 100644
--- a/spec/factories/ci/pipelines.rb
+++ b/spec/factories/ci/pipelines.rb
@@ -8,7 +8,7 @@ FactoryBot.define do
sha { 'b83d6e391c22777fca1ed3012fce84f633d7fed0' }
status { 'pending' }
add_attribute(:protected) { false }
- partition_id { 1234 }
+ partition_id { 100 }
project
@@ -19,7 +19,7 @@ FactoryBot.define do
transient { child_of { nil } }
transient { upstream_of { nil } }
- transient { title { nil } }
+ transient { name { nil } }
after(:build) do |pipeline, evaluator|
if evaluator.child_of
@@ -29,8 +29,8 @@ FactoryBot.define do
pipeline.ensure_project_iid!
- if evaluator.title
- pipeline.pipeline_metadata = build(:ci_pipeline_metadata, title: evaluator.title, project: pipeline.project, pipeline: pipeline)
+ if evaluator.name
+ pipeline.pipeline_metadata = build(:ci_pipeline_metadata, name: evaluator.name, project: pipeline.project, pipeline: pipeline)
end
end
@@ -54,7 +54,7 @@ FactoryBot.define do
end
factory :ci_pipeline do
- partition_id { 1234 }
+ partition_id { 100 }
transient { ci_ref_presence { true } }
before(:create) do |pipeline, evaluator|
diff --git a/spec/factories/ci/processable.rb b/spec/factories/ci/processable.rb
index 0550f4c23fa..76c7376d24a 100644
--- a/spec/factories/ci/processable.rb
+++ b/spec/factories/ci/processable.rb
@@ -4,7 +4,7 @@ FactoryBot.define do
factory :ci_processable, class: 'Ci::Processable' do
name { 'processable' }
stage { 'test' }
- stage_idx { 0 }
+ stage_idx { ci_stage.try(:position) || 0 }
ref { 'master' }
tag { false }
pipeline factory: :ci_pipeline
diff --git a/spec/factories/ci/reports/codequality_degradations.rb b/spec/factories/ci/reports/codequality_degradations.rb
index 8b53f2bf46e..632f5a3ecaa 100644
--- a/spec/factories/ci/reports/codequality_degradations.rb
+++ b/spec/factories/ci/reports/codequality_degradations.rb
@@ -26,7 +26,8 @@ FactoryBot.define do
"remediation_points": 900000,
"severity": "major",
"type": "issue",
- "engine_name": "structure"
+ "engine_name": "structure",
+ "web_url": "http://localhost/root/test-project/-/blob/f572d396fae9206628714fb2ce00f72e94f2258f/file_a.rb#L10"
}.with_indifferent_access
end
end
@@ -56,7 +57,8 @@ FactoryBot.define do
"remediation_points": 900000,
"severity": "major",
"type": "issue",
- "engine_name": "structure"
+ "engine_name": "structure",
+ "web_url": "http://localhost/root/test-project/-/blob/f572d396fae9206628714fb2ce00f72e94f2258f/file_a.rb#L10"
}.with_indifferent_access
end
end
@@ -91,7 +93,8 @@ FactoryBot.define do
},
"engine_name": "rubocop",
"fingerprint": "ab5f8b935886b942d621399f5a2ca16e",
- "severity": "minor"
+ "severity": "minor",
+ "web_url": "http://localhost/root/test-project/-/blob/f572d396fae9206628714fb2ce00f72e94f2258f/file_b.rb#L10"
}.with_indifferent_access
end
end
diff --git a/spec/factories/ci/reports/sbom/components.rb b/spec/factories/ci/reports/sbom/components.rb
index fd9b4386130..8f2c00b695a 100644
--- a/spec/factories/ci/reports/sbom/components.rb
+++ b/spec/factories/ci/reports/sbom/components.rb
@@ -3,15 +3,29 @@
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}" }
+ transient do
+ purl_type { 'npm' }
+ end
+
+ purl do
+ ::Sbom::PackageUrl.new(
+ type: purl_type,
+ name: name,
+ version: version
+ ).to_s
+ end
+
skip_create
initialize_with do
::Gitlab::Ci::Reports::Sbom::Component.new(
type: type,
name: name,
+ purl: purl,
version: version
)
end
diff --git a/spec/factories/ci/reports/sbom/reports.rb b/spec/factories/ci/reports/sbom/reports.rb
index 4a83b5898ef..7a076282915 100644
--- a/spec/factories/ci/reports/sbom/reports.rb
+++ b/spec/factories/ci/reports/sbom/reports.rb
@@ -8,6 +8,12 @@ FactoryBot.define do
source { association :ci_reports_sbom_source }
end
+ trait :invalid do
+ after(:build) do |report, options|
+ report.add_error('This report is invalid because it contains errors.')
+ end
+ end
+
after(:build) do |report, options|
options.components.each { |component| report.add_component(component) }
report.set_source(options.source)
diff --git a/spec/factories/ci/secure_files.rb b/spec/factories/ci/secure_files.rb
index 74988202c71..31dbcd15cb1 100644
--- a/spec/factories/ci/secure_files.rb
+++ b/spec/factories/ci/secure_files.rb
@@ -13,4 +13,13 @@ FactoryBot.define do
end
end
end
+
+ factory :ci_secure_file_with_metadata, class: 'Ci::SecureFile' do
+ sequence(:name) { |n| "file#{n}.cer" }
+ file { fixture_file_upload('spec/fixtures/ci_secure_files/sample.cer', 'application/octet-stream') }
+ checksum { 'foo1234' }
+ project
+
+ after(:create, &:update_metadata!)
+ end
end
diff --git a/spec/factories/ci/stages.rb b/spec/factories/ci/stages.rb
index 41297b01f92..d9dff4d9a86 100644
--- a/spec/factories/ci/stages.rb
+++ b/spec/factories/ci/stages.rb
@@ -2,7 +2,7 @@
FactoryBot.define do
factory :ci_stage, class: 'Ci::Stage' do
- project factory: :project
+ project { pipeline.project }
pipeline factory: :ci_empty_pipeline
name { 'test' }
diff --git a/spec/factories/container_repositories.rb b/spec/factories/container_repositories.rb
index 210441430b0..66ac72fb5d7 100644
--- a/spec/factories/container_repositories.rb
+++ b/spec/factories/container_repositories.rb
@@ -21,6 +21,10 @@ FactoryBot.define do
status { :delete_failed }
end
+ trait :status_delete_ongoing do
+ status { :delete_ongoing }
+ end
+
trait :cleanup_scheduled do
expiration_policy_cleanup_status { :cleanup_scheduled }
end
diff --git a/spec/factories/dependency_proxy.rb b/spec/factories/dependency_proxy.rb
index afa6c61116a..33356a701df 100644
--- a/spec/factories/dependency_proxy.rb
+++ b/spec/factories/dependency_proxy.rb
@@ -4,13 +4,20 @@ FactoryBot.define do
factory :dependency_proxy_blob, class: 'DependencyProxy::Blob' do
group
size { 1234 }
- file { fixture_file_upload('spec/fixtures/dependency_proxy/a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4.gz') }
file_name { 'a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4.gz' }
status { :default }
+ after(:build) do |blob, _evaluator|
+ blob.file = fixture_file_upload('spec/fixtures/dependency_proxy/a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4.gz')
+ end
+
trait :pending_destruction do
status { :pending_destruction }
end
+
+ trait :remote_store do
+ file_store { DependencyProxy::FileUploader::Store::REMOTE }
+ end
end
factory :dependency_proxy_manifest, class: 'DependencyProxy::Manifest' do
diff --git a/spec/factories/experiment_subjects.rb b/spec/factories/experiment_subjects.rb
deleted file mode 100644
index c35bc370bad..00000000000
--- a/spec/factories/experiment_subjects.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-FactoryBot.define do
- factory :experiment_subject do
- experiment
- user
- variant { :control }
- end
-end
diff --git a/spec/factories/experiment_users.rb b/spec/factories/experiment_users.rb
deleted file mode 100644
index 66c39d684eb..00000000000
--- a/spec/factories/experiment_users.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-# frozen_string_literal: true
-
-FactoryBot.define do
- factory :experiment_user do
- experiment
- user
- group_type { :control }
- converted_at { nil }
- end
-end
diff --git a/spec/factories/experiments.rb b/spec/factories/experiments.rb
deleted file mode 100644
index 2c51a6585f4..00000000000
--- a/spec/factories/experiments.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-# frozen_string_literal: true
-
-FactoryBot.define do
- factory :experiment do
- name { generate(:title) }
- end
-end
diff --git a/spec/factories/integrations.rb b/spec/factories/integrations.rb
index 5ac26b7a260..ebbf1b560e5 100644
--- a/spec/factories/integrations.rb
+++ b/spec/factories/integrations.rb
@@ -43,6 +43,19 @@ FactoryBot.define do
end
end
+ factory :packagist_integration, class: 'Integrations::Packagist' do
+ project
+ type { 'Integrations::Packagist' }
+ active { true }
+ properties do
+ {
+ username: 'username',
+ token: 'test',
+ server: 'https://packagist.example.com'
+ }
+ end
+ end
+
factory :prometheus_integration, class: 'Integrations::Prometheus' do
project
active { true }
diff --git a/spec/factories/member_roles.rb b/spec/factories/member_roles.rb
index bd211844f5a..08df45a85f8 100644
--- a/spec/factories/member_roles.rb
+++ b/spec/factories/member_roles.rb
@@ -4,5 +4,7 @@ FactoryBot.define do
factory :member_role do
namespace { association(:group) }
base_access_level { Gitlab::Access::DEVELOPER }
+
+ trait(:guest) { base_access_level { GroupMember::GUEST } }
end
end
diff --git a/spec/factories/merge_request_reviewers.rb b/spec/factories/merge_request_reviewers.rb
new file mode 100644
index 00000000000..26e047a3fbf
--- /dev/null
+++ b/spec/factories/merge_request_reviewers.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+FactoryBot.define do
+ factory :merge_request_reviewer do
+ merge_request
+ reviewer { association(:user) }
+ state { 'unreviewed' }
+ end
+end
diff --git a/spec/factories/packages/rpm/rpm_repository_files.rb b/spec/factories/packages/rpm/rpm_repository_files.rb
index 079d32b3995..00755f49d98 100644
--- a/spec/factories/packages/rpm/rpm_repository_files.rb
+++ b/spec/factories/packages/rpm/rpm_repository_files.rb
@@ -4,9 +4,10 @@ FactoryBot.define do
factory :rpm_repository_file, class: 'Packages::Rpm::RepositoryFile' do
project
- file_name { 'repomd.xml' }
+ file_name { '364c77dd49e8f814d56e621d0b3306c4fd0696dcad506f527329b818eb0f5db3-repomd.xml' }
file_sha1 { 'efae869b4e95d54796a46481f3a211d6a88d0323' }
file_md5 { 'ddf8a75330c896a8d7709e75f8b5982a' }
+ file_sha256 { '364c77dd49e8f814d56e621d0b3306c4fd0696dcad506f527329b818eb0f5db3' }
size { 3127.kilobytes }
status { :default }
@@ -15,7 +16,11 @@ FactoryBot.define do
end
transient do
- file_fixture { 'spec/fixtures/packages/rpm/repodata/repomd.xml' }
+ file_fixture do
+ # rubocop:disable Layout/LineLength
+ 'spec/fixtures/packages/rpm/repodata/364c77dd49e8f814d56e621d0b3306c4fd0696dcad506f527329b818eb0f5db3-repomd.xml'
+ # rubocop:enable Layout/LineLength
+ end
end
after(:build) do |package_file, evaluator|
diff --git a/spec/factories/project_hooks.rb b/spec/factories/project_hooks.rb
index dbb5c357acb..946b3925ee9 100644
--- a/spec/factories/project_hooks.rb
+++ b/spec/factories/project_hooks.rb
@@ -6,6 +6,10 @@ FactoryBot.define do
enable_ssl_verification { false }
project
+ trait :url_variables do
+ url_variables { { 'abc' => 'supers3cret' } }
+ end
+
trait :token do
token { generate(:token) }
end
diff --git a/spec/factories/projects.rb b/spec/factories/projects.rb
index b62995dce42..6e3a7a3f5ef 100644
--- a/spec/factories/projects.rb
+++ b/spec/factories/projects.rb
@@ -41,6 +41,7 @@ FactoryBot.define do
environments_access_level { ProjectFeature::ENABLED }
feature_flags_access_level { ProjectFeature::ENABLED }
releases_access_level { ProjectFeature::ENABLED }
+ infrastructure_access_level { ProjectFeature::ENABLED }
# we can't assign the delegated `#ci_cd_settings` attributes directly, as the
# `#ci_cd_settings` relation needs to be created first
@@ -251,6 +252,7 @@ FactoryBot.define do
transient do
create_templates { nil }
create_branch { nil }
+ create_tag { nil }
end
after :create do |project, evaluator|
@@ -287,6 +289,13 @@ FactoryBot.define do
end
+ if evaluator.create_tag
+ project.repository.add_tag(
+ project.creator,
+ evaluator.create_tag,
+ project.repository.commit.sha)
+ end
+
project.track_project_repository
end
end
@@ -467,6 +476,10 @@ FactoryBot.define do
end
end
+ trait :in_group do
+ namespace factory: [:group]
+ end
+
trait :in_subgroup do
namespace factory: [:group, :nested]
end
diff --git a/spec/factories/projects/import_export/export_relation.rb b/spec/factories/projects/import_export/export_relation.rb
deleted file mode 100644
index 2b6419dcecb..00000000000
--- a/spec/factories/projects/import_export/export_relation.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-# frozen_string_literal: true
-
-FactoryBot.define do
- factory :project_relation_export, class: 'Projects::ImportExport::RelationExport' do
- project_export_job factory: :project_export_job
-
- relation { 'labels' }
- status { 0 }
- sequence(:jid) { |n| "project_relation_export_#{n}" }
- end
-end
diff --git a/spec/factories/projects/import_export/relation_export.rb b/spec/factories/projects/import_export/relation_export.rb
new file mode 100644
index 00000000000..7fab5808d2f
--- /dev/null
+++ b/spec/factories/projects/import_export/relation_export.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+FactoryBot.define do
+ factory :project_relation_export, class: 'Projects::ImportExport::RelationExport' do
+ project_export_job factory: :project_export_job
+
+ relation { 'labels' }
+ status { Projects::ImportExport::RelationExport::STATUS[:queued] }
+ sequence(:jid) { |n| "project_relation_export_#{n}" }
+
+ trait :queued do
+ status { Projects::ImportExport::RelationExport::STATUS[:queued] }
+ end
+
+ trait :started do
+ status { Projects::ImportExport::RelationExport::STATUS[:started] }
+ end
+
+ trait :finished do
+ status { Projects::ImportExport::RelationExport::STATUS[:finished] }
+ end
+
+ trait :failed do
+ status { Projects::ImportExport::RelationExport::STATUS[:failed] }
+ end
+ end
+end
diff --git a/spec/factories/projects/import_export/relation_export_upload.rb b/spec/factories/projects/import_export/relation_export_upload.rb
new file mode 100644
index 00000000000..eaa57d6ee59
--- /dev/null
+++ b/spec/factories/projects/import_export/relation_export_upload.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+FactoryBot.define do
+ factory :project_relation_export_upload, class: 'Projects::ImportExport::RelationExportUpload' do
+ relation_export factory: :project_relation_export
+ export_file { fixture_file_upload("spec/fixtures/gitlab/import_export/labels.tar.gz") }
+ end
+end
diff --git a/spec/factories/projects/wiki_repositories.rb b/spec/factories/projects/wiki_repositories.rb
new file mode 100644
index 00000000000..78e02ff297b
--- /dev/null
+++ b/spec/factories/projects/wiki_repositories.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+FactoryBot.define do
+ factory :project_wiki_repository, class: 'Projects::WikiRepository' do
+ project
+ end
+end
diff --git a/spec/factories/protected_branches.rb b/spec/factories/protected_branches.rb
index 425352783dd..75b375733a6 100644
--- a/spec/factories/protected_branches.rb
+++ b/spec/factories/protected_branches.rb
@@ -13,7 +13,8 @@ FactoryBot.define do
end
after(:create) do |protected_branch, evaluator|
- break unless protected_branch.project&.persisted?
+ # Do not use `break` because it will cause `LocalJumpError`
+ next unless protected_branch.project&.persisted?
ProtectedBranches::CacheService.new(protected_branch.project).refresh
end
@@ -39,63 +40,63 @@ FactoryBot.define do
end
end
- trait :maintainers_can_push do
+ trait :no_one_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::NO_ACCESS)
end
end
- trait :maintainers_can_merge 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
- trait :developers_can_push do
+ trait :maintainers_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::DEVELOPER)
+ protected_branch.merge_access_levels.new(access_level: Gitlab::Access::MAINTAINER)
end
end
- trait :developers_can_merge do
+ trait :no_one_can_push 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::NO_ACCESS)
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 :no_one_can_merge do
+ trait :maintainers_can_push 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::NO_ACCESS)
+ protected_branch.push_access_levels.new(access_level: Gitlab::Access::MAINTAINER)
end
end
end
diff --git a/spec/factories/user_statuses.rb b/spec/factories/user_statuses.rb
index dbed6031ce1..79dc1eb7931 100644
--- a/spec/factories/user_statuses.rb
+++ b/spec/factories/user_statuses.rb
@@ -5,5 +5,9 @@ FactoryBot.define do
user
emoji { 'coffee' }
message { 'I crave coffee' }
+
+ trait :busy do
+ availability { 'busy' }
+ end
end
end
diff --git a/spec/factories/users.rb b/spec/factories/users.rb
index 2e7c6116fe6..2b53a469841 100644
--- a/spec/factories/users.rb
+++ b/spec/factories/users.rb
@@ -27,6 +27,10 @@ FactoryBot.define do
after(:build) { |user, _| user.block! }
end
+ trait :locked do
+ after(:build) { |user, _| user.lock_access! }
+ end
+
trait :disallowed_password do
password { User::DISALLOWED_PASSWORDS.first }
end
diff --git a/spec/factories/users/ghost_user_migrations.rb b/spec/factories/users/ghost_user_migrations.rb
index 0fe7cded4f3..77b7f7e6df4 100644
--- a/spec/factories/users/ghost_user_migrations.rb
+++ b/spec/factories/users/ghost_user_migrations.rb
@@ -5,5 +5,6 @@ FactoryBot.define do
association :user
initiator_user { association(:user) }
hard_delete { false }
+ consume_after { Time.current }
end
end
diff --git a/spec/factories/users/namespace_commit_emails.rb b/spec/factories/users/namespace_commit_emails.rb
new file mode 100644
index 00000000000..2f7e89bf766
--- /dev/null
+++ b/spec/factories/users/namespace_commit_emails.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+FactoryBot.define do
+ factory :namespace_commit_email, class: 'Users::NamespaceCommitEmail' do
+ email
+ user { email.user }
+ namespace
+ end
+end