diff options
Diffstat (limited to 'spec/factories')
-rw-r--r-- | spec/factories/ci/build_metadata.rb | 7 | ||||
-rw-r--r-- | spec/factories/ci/runners.rb | 5 | ||||
-rw-r--r-- | spec/factories/container_repositories.rb | 46 | ||||
-rw-r--r-- | spec/factories/gitlab/database/background_migration/batched_jobs.rb | 16 | ||||
-rw-r--r-- | spec/factories/go_module_commits.rb | 4 | ||||
-rw-r--r-- | spec/factories/group_members.rb | 12 | ||||
-rw-r--r-- | spec/factories/issues.rb | 9 | ||||
-rw-r--r-- | spec/factories/keys.rb | 25 | ||||
-rw-r--r-- | spec/factories/labels.rb | 7 | ||||
-rw-r--r-- | spec/factories/namespace_statistics.rb | 7 | ||||
-rw-r--r-- | spec/factories/project_members.rb | 12 | ||||
-rw-r--r-- | spec/factories/projects.rb | 2 | ||||
-rw-r--r-- | spec/factories/usage_data.rb | 8 | ||||
-rw-r--r-- | spec/factories/work_items.rb | 13 |
14 files changed, 151 insertions, 22 deletions
diff --git a/spec/factories/ci/build_metadata.rb b/spec/factories/ci/build_metadata.rb new file mode 100644 index 00000000000..cfc86c4ef4b --- /dev/null +++ b/spec/factories/ci/build_metadata.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :ci_build_metadata, class: 'Ci::BuildMetadata' do + build { association(:ci_build, strategy: :build, metadata: instance) } + end +end diff --git a/spec/factories/ci/runners.rb b/spec/factories/ci/runners.rb index 6665b7b76a0..18026412261 100644 --- a/spec/factories/ci/runners.rb +++ b/spec/factories/ci/runners.rb @@ -13,6 +13,7 @@ FactoryBot.define do transient do groups { [] } projects { [] } + token_expires_at { nil } end after(:build) do |runner, evaluator| @@ -25,6 +26,10 @@ FactoryBot.define do end end + after(:create) do |runner, evaluator| + runner.update!(token_expires_at: evaluator.token_expires_at) if evaluator.token_expires_at + end + trait :online do contacted_at { Time.now } end diff --git a/spec/factories/container_repositories.rb b/spec/factories/container_repositories.rb index 86bb129067f..ce83e9e8006 100644 --- a/spec/factories/container_repositories.rb +++ b/spec/factories/container_repositories.rb @@ -33,6 +33,52 @@ FactoryBot.define do expiration_policy_cleanup_status { :cleanup_ongoing } end + trait :default do + migration_state { 'default' } + end + + trait :pre_importing do + migration_state { 'pre_importing' } + migration_pre_import_started_at { Time.zone.now } + end + + trait :pre_import_done do + migration_state { 'pre_import_done' } + migration_pre_import_started_at { Time.zone.now } + migration_pre_import_done_at { Time.zone.now } + end + + trait :importing do + migration_state { 'importing' } + migration_pre_import_started_at { Time.zone.now } + migration_pre_import_done_at { Time.zone.now } + migration_import_started_at { Time.zone.now } + end + + trait :import_done do + migration_state { 'import_done' } + migration_pre_import_started_at { Time.zone.now } + migration_pre_import_done_at { Time.zone.now } + migration_import_started_at { Time.zone.now } + migration_import_done_at { Time.zone.now } + end + + trait :import_aborted do + migration_state { 'import_aborted' } + migration_pre_import_started_at { Time.zone.now } + migration_pre_import_done_at { Time.zone.now } + migration_import_started_at { Time.zone.now } + migration_aborted_at { Time.zone.now } + migration_aborted_in_state { 'importing' } + migration_retries_count { 1 } + end + + trait :import_skipped do + migration_state { 'import_skipped' } + migration_skipped_at { Time.zone.now } + migration_skipped_reason { :too_many_tags } + end + after(:build) do |repository, evaluator| next if evaluator.tags.to_a.none? diff --git a/spec/factories/gitlab/database/background_migration/batched_jobs.rb b/spec/factories/gitlab/database/background_migration/batched_jobs.rb index cec20616f7f..3c7dcd03701 100644 --- a/spec/factories/gitlab/database/background_migration/batched_jobs.rb +++ b/spec/factories/gitlab/database/background_migration/batched_jobs.rb @@ -9,5 +9,21 @@ FactoryBot.define do batch_size { 5 } sub_batch_size { 1 } pause_ms { 100 } + + trait(:pending) do + status { 0 } + end + + trait(:running) do + status { 1 } + end + + trait(:failed) do + status { 2 } + end + + trait(:succeeded) do + status { 3 } + end end end diff --git a/spec/factories/go_module_commits.rb b/spec/factories/go_module_commits.rb index 514a5559344..4f86d38954c 100644 --- a/spec/factories/go_module_commits.rb +++ b/spec/factories/go_module_commits.rb @@ -17,7 +17,7 @@ FactoryBot.define do service do Files::MultiService.new( project, - project.owner, + project.first_owner, commit_message: message, start_branch: project.repository.root_ref || 'master', branch_name: project.repository.root_ref || 'master', @@ -38,7 +38,7 @@ FactoryBot.define do commit = project.repository.commit_by(oid: r[:result]) if tag - r = Tags::CreateService.new(project, project.owner).execute(tag, commit.sha, tag_message) + r = Tags::CreateService.new(project, project.first_owner).execute(tag, commit.sha, tag_message) raise "operation failed: #{r}" unless r[:status] == :success end diff --git a/spec/factories/group_members.rb b/spec/factories/group_members.rb index ab2321c81c4..4b1bf9a7d11 100644 --- a/spec/factories/group_members.rb +++ b/spec/factories/group_members.rb @@ -35,6 +35,18 @@ FactoryBot.define do access_level { GroupMember::MINIMAL_ACCESS } end + trait :awaiting do + after(:create) do |member| + member.update!(state: ::Member::STATE_AWAITING) + end + end + + trait :active do + after(:create) do |member| + member.update!(state: ::Member::STATE_ACTIVE) + end + end + transient do tasks_to_be_done { [] } end diff --git a/spec/factories/issues.rb b/spec/factories/issues.rb index 8b53732a3c1..26c858665a8 100644 --- a/spec/factories/issues.rb +++ b/spec/factories/issues.rb @@ -61,6 +61,15 @@ FactoryBot.define do factory :incident do issue_type { :incident } association :work_item_type, :default, :incident + + # An escalation status record is created for all incidents + # in app code. This is a trait to avoid creating escalation + # status records in specs which do not need them. + trait :with_escalation_status do + after(:create) do |incident| + create(:incident_management_issuable_escalation_status, issue: incident) + end + end end end end diff --git a/spec/factories/keys.rb b/spec/factories/keys.rb index cf52e772ae0..2af1c6cc62d 100644 --- a/spec/factories/keys.rb +++ b/spec/factories/keys.rb @@ -1,14 +1,12 @@ # frozen_string_literal: true -require_relative '../support/helpers/key_generator_helper' - FactoryBot.define do factory :key do title - key { Spec::Support::Helpers::KeyGeneratorHelper.new(1024).generate + ' dummy@gitlab.com' } + key { SSHData::PrivateKey::RSA.generate(1024, unsafe_allow_small_key: true).public_key.openssh(comment: 'dummy@gitlab.com') } factory :key_without_comment do - key { Spec::Support::Helpers::KeyGeneratorHelper.new(1024).generate } + key { SSHData::PrivateKey::RSA.generate(1024, unsafe_allow_small_key: true).public_key.openssh } end factory :deploy_key, class: 'DeployKey' @@ -148,5 +146,24 @@ FactoryBot.define do KEY end end + + factory :ecdsa_sk_key_256 do + key do + <<~KEY.delete("\n") + sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyN + TZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBDZ+f5tSRhlB7EN39f93SscTN5PUv + bD3UQsNrlE1ZdbwPMMRul2zlPiUvwAvnJitW0jlD/vwZOW2YN+q+iZ5c0MAAAAEc3NoOg== dummy@gitlab.com + KEY + end + end + + factory :ed25519_sk_key_256 do + key do + <<~KEY.delete("\n") + sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tA + AAAIEX/dQ0v4127bEo8eeG1EV0ApO2lWbSnN6RWusn/NjqIAAAABHNzaDo= dummy@gitlab.com + KEY + end + end end end diff --git a/spec/factories/labels.rb b/spec/factories/labels.rb index f0cef41db69..250c92c0038 100644 --- a/spec/factories/labels.rb +++ b/spec/factories/labels.rb @@ -18,13 +18,6 @@ FactoryBot.define do title { "#{prefix}::#{generate(:label_title)}" } end - trait :incident do - properties = IncidentManagement::CreateIncidentLabelService::LABEL_PROPERTIES - title { properties.fetch(:title) } - description { properties.fetch(:description) } - color { properties.fetch(:color) } - end - factory :label, traits: [:base_label], class: 'ProjectLabel' do project diff --git a/spec/factories/namespace_statistics.rb b/spec/factories/namespace_statistics.rb new file mode 100644 index 00000000000..49e2c8957c5 --- /dev/null +++ b/spec/factories/namespace_statistics.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :namespace_statistics do + namespace factory: :namespace + end +end diff --git a/spec/factories/project_members.rb b/spec/factories/project_members.rb index f2dedc178c7..c38257b06b6 100644 --- a/spec/factories/project_members.rb +++ b/spec/factories/project_members.rb @@ -24,6 +24,18 @@ FactoryBot.define do after(:build) { |project_member, _| project_member.user.block! } end + trait :awaiting do + after(:create) do |member| + member.update!(state: ::Member::STATE_AWAITING) + end + end + + trait :active do + after(:create) do |member| + member.update!(state: ::Member::STATE_ACTIVE) + end + end + transient do tasks_to_be_done { [] } end diff --git a/spec/factories/projects.rb b/spec/factories/projects.rb index c345fa0c8b4..8a406f95f58 100644 --- a/spec/factories/projects.rb +++ b/spec/factories/projects.rb @@ -82,7 +82,7 @@ FactoryBot.define do # user have access to the project. Our specs don't use said service class, # thus we must manually refresh things here. unless project.group || project.pending_delete - project.add_maintainer(project.owner) + project.add_maintainer(project.first_owner) end project.group&.refresh_members_authorized_projects diff --git a/spec/factories/usage_data.rb b/spec/factories/usage_data.rb index f00d1f8b808..86799af1719 100644 --- a/spec/factories/usage_data.rb +++ b/spec/factories/usage_data.rb @@ -58,14 +58,6 @@ FactoryBot.define do # Tracing create(:project_tracing_setting, project: projects[0]) - # Incident Labeled Issues - incident_label = create(:label, :incident, project: projects[0]) - create(:labeled_issue, project: projects[0], labels: [incident_label]) - incident_label_scoped_to_project = create(:label, :incident, project: projects[1]) - incident_label_scoped_to_group = create(:group_label, :incident, group: group) - create(:labeled_issue, project: projects[1], labels: [incident_label_scoped_to_project]) - create(:labeled_issue, project: projects[1], labels: [incident_label_scoped_to_group]) - # Alert Issues create(:alert_management_alert, issue: issues[0], project: projects[0]) create(:alert_management_alert, issue: alert_bot_issues[0], project: projects[0]) diff --git a/spec/factories/work_items.rb b/spec/factories/work_items.rb new file mode 100644 index 00000000000..6d9dcac6165 --- /dev/null +++ b/spec/factories/work_items.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :work_item, traits: [:has_internal_id] do + title { generate(:title) } + project + author { project.creator } + updated_by { author } + relative_position { RelativePositioning::START_POSITION } + issue_type { :issue } + association :work_item_type, :default + end +end |