summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-04-21 09:20:23 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2023-04-21 09:20:23 +0000
commit3b80f22aba42e3e424de5c3dd15cc11f96aaac65 (patch)
treed222a968b24ae1c82e140d1c2b78d8374c554735 /spec
parented8507cbb1333bd482039bfd9c4d29b799561950 (diff)
downloadgitlab-ce-3b80f22aba42e3e424de5c3dd15cc11f96aaac65.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r--spec/fixtures/lib/gitlab/import_export/complex/project.json6
-rw-r--r--spec/fixtures/lib/gitlab/import_export/complex/tree/project/design_management_repository.ndjson1
-rw-r--r--spec/lib/gitlab/background_migration/backfill_design_management_repositories_spec.rb68
-rw-r--r--spec/lib/gitlab/import_export/safe_model_attributes.yml5
-rw-r--r--spec/migrations/20230406121544_queue_backfill_design_management_repositories_spec.rb26
-rw-r--r--spec/workers/every_sidekiq_worker_spec.rb3
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