diff options
Diffstat (limited to 'spec/factories/ci')
-rw-r--r-- | spec/factories/ci/builds.rb | 25 | ||||
-rw-r--r-- | spec/factories/ci/job_artifacts.rb | 2 | ||||
-rw-r--r-- | spec/factories/ci/pipeline_metadata.rb | 2 | ||||
-rw-r--r-- | spec/factories/ci/pipelines.rb | 10 | ||||
-rw-r--r-- | spec/factories/ci/processable.rb | 2 | ||||
-rw-r--r-- | spec/factories/ci/reports/codequality_degradations.rb | 9 | ||||
-rw-r--r-- | spec/factories/ci/reports/sbom/components.rb | 14 | ||||
-rw-r--r-- | spec/factories/ci/reports/sbom/reports.rb | 6 | ||||
-rw-r--r-- | spec/factories/ci/secure_files.rb | 9 | ||||
-rw-r--r-- | spec/factories/ci/stages.rb | 2 |
10 files changed, 62 insertions, 19 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' } |