diff options
| author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-04-21 09:20:23 +0000 |
|---|---|---|
| committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-04-21 09:20:23 +0000 |
| commit | 3b80f22aba42e3e424de5c3dd15cc11f96aaac65 (patch) | |
| tree | d222a968b24ae1c82e140d1c2b78d8374c554735 /spec | |
| parent | ed8507cbb1333bd482039bfd9c4d29b799561950 (diff) | |
| download | gitlab-ce-3b80f22aba42e3e424de5c3dd15cc11f96aaac65.tar.gz | |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
6 files changed, 108 insertions, 1 deletions
diff --git a/spec/fixtures/lib/gitlab/import_export/complex/project.json b/spec/fixtures/lib/gitlab/import_export/complex/project.json index cdf9395fbe6..8a307af1ca7 100644 --- a/spec/fixtures/lib/gitlab/import_export/complex/project.json +++ b/spec/fixtures/lib/gitlab/import_export/complex/project.json @@ -45,6 +45,12 @@ ] } ], + "design_management_repository": { + "id": 500, + "project_id": 30, + "created_at": "2019-08-07T03:57:55.007Z", + "updated_at": "2019-08-07T03:57:55.007Z" + }, "issues": [ { "id": 40, diff --git a/spec/fixtures/lib/gitlab/import_export/complex/tree/project/design_management_repository.ndjson b/spec/fixtures/lib/gitlab/import_export/complex/tree/project/design_management_repository.ndjson new file mode 100644 index 00000000000..c1676157e68 --- /dev/null +++ b/spec/fixtures/lib/gitlab/import_export/complex/tree/project/design_management_repository.ndjson @@ -0,0 +1 @@ +{"id":500, "project_id":30, "created_at":"2019-08-07T03:57:55.007Z", "updated_at":"2019-08-07T03:57:55.007Z"}
\ No newline at end of file diff --git a/spec/lib/gitlab/background_migration/backfill_design_management_repositories_spec.rb b/spec/lib/gitlab/background_migration/backfill_design_management_repositories_spec.rb new file mode 100644 index 00000000000..0cabdc78db8 --- /dev/null +++ b/spec/lib/gitlab/background_migration/backfill_design_management_repositories_spec.rb @@ -0,0 +1,68 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe( + Gitlab::BackgroundMigration::BackfillDesignManagementRepositories, + schema: 20230406121544, + feature_category: :geo_replication +) do + let!(:namespaces) { table(:namespaces) } + let!(:projects) { table(:projects) } + let!(:design_management_repositories) { table(:design_management_repositories) } + + subject(:migration) do + described_class.new( + start_id: projects.minimum(:id), + end_id: projects.maximum(:id), + batch_table: :projects, + batch_column: :id, + sub_batch_size: 2, + pause_ms: 0, + connection: ActiveRecord::Base.connection + ) + end + + describe '#perform' do + it 'creates design_management_repositories entries for all projects in range' do + namespace1 = create_namespace('test1') + namespace2 = create_namespace('test2') + project1 = create_project(namespace1, 'test1') + project2 = create_project(namespace2, 'test2') + design_management_repositories.create!(project_id: project2.id) + + expect { migration.perform } + .to change { design_management_repositories.pluck(:project_id) } + .from([project2.id]) + .to match_array([project1.id, project2.id]) + end + + context 'when project_id already exists in design_management_repositories' do + it "doesn't duplicate project_id" do + namespace = create_namespace('test1') + project = create_project(namespace, 'test1') + design_management_repositories.create!(project_id: project.id) + + expect { migration.perform } + .not_to change { design_management_repositories.pluck(:project_id) } + end + end + + def create_namespace(name) + namespaces.create!( + name: name, + path: name, + type: 'Project' + ) + end + + def create_project(namespace, name) + projects.create!( + namespace_id: namespace.id, + project_namespace_id: namespace.id, + name: name, + path: name + ) + end + end +end diff --git a/spec/lib/gitlab/import_export/safe_model_attributes.yml b/spec/lib/gitlab/import_export/safe_model_attributes.yml index 854909fd592..a2087695d31 100644 --- a/spec/lib/gitlab/import_export/safe_model_attributes.yml +++ b/spec/lib/gitlab/import_export/safe_model_attributes.yml @@ -927,6 +927,11 @@ DesignManagement::Version: - created_at - sha - author_id +DesignManagement::Repository: +- id +- project_id +- created_at +- updated_at ZoomMeeting: - id - project_id diff --git a/spec/migrations/20230406121544_queue_backfill_design_management_repositories_spec.rb b/spec/migrations/20230406121544_queue_backfill_design_management_repositories_spec.rb new file mode 100644 index 00000000000..39ef769fd11 --- /dev/null +++ b/spec/migrations/20230406121544_queue_backfill_design_management_repositories_spec.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe QueueBackfillDesignManagementRepositories, feature_category: :geo_replication do + let!(:batched_migration) { described_class::MIGRATION } + + it 'schedules a new batched migration' do + reversible_migration do |migration| + migration.before -> { + expect(batched_migration).not_to have_scheduled_batched_migration + } + + migration.after -> { + expect(batched_migration).to have_scheduled_batched_migration( + table_name: :projects, + column_name: :id, + interval: described_class::DELAY_INTERVAL, + batch_size: described_class::BATCH_SIZE, + sub_batch_size: described_class::SUB_BATCH_SIZE + ) + } + end + end +end diff --git a/spec/workers/every_sidekiq_worker_spec.rb b/spec/workers/every_sidekiq_worker_spec.rb index 78691f70866..0f204aeeb4b 100644 --- a/spec/workers/every_sidekiq_worker_spec.rb +++ b/spec/workers/every_sidekiq_worker_spec.rb @@ -482,7 +482,8 @@ RSpec.describe 'Every Sidekiq worker', feature_category: :shared do 'Wikis::GitGarbageCollectWorker' => false, 'WorkItems::ImportWorkItemsCsvWorker' => 3, 'X509CertificateRevokeWorker' => 3, - 'ComplianceManagement::MergeRequests::ComplianceViolationsWorker' => 3 + 'ComplianceManagement::MergeRequests::ComplianceViolationsWorker' => 3, + 'Zoekt::IndexerWorker' => 2 }.merge(extra_retry_exceptions) end |
