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/support/helpers/migrations_helpers/project_statistics_helper.rb')
-rw-r--r--spec/support/helpers/migrations_helpers/project_statistics_helper.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/spec/support/helpers/migrations_helpers/project_statistics_helper.rb b/spec/support/helpers/migrations_helpers/project_statistics_helper.rb
new file mode 100644
index 00000000000..4e7d83a38ac
--- /dev/null
+++ b/spec/support/helpers/migrations_helpers/project_statistics_helper.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+
+module MigrationHelpers
+ module ProjectStatisticsHelper
+ def generate_records(projects, table, values = {})
+ projects.map do |proj|
+ table.create!(
+ values.merge({
+ project_id: proj.id,
+ namespace_id: proj.namespace_id
+ })
+ )
+ end
+ end
+
+ def create_migration(end_id:)
+ described_class.new(start_id: 1, end_id: end_id,
+ batch_table: 'project_statistics', batch_column: 'project_id',
+ sub_batch_size: 1_000, pause_ms: 0,
+ connection: ApplicationRecord.connection)
+ end
+
+ def create_project_stats(project_table, namespace, default_stats, override_stats = {})
+ stats = default_stats.merge(override_stats)
+
+ group = namespace.create!(name: 'group_a', path: 'group-a', type: 'Group')
+ project_namespace = namespace.create!(name: 'project_a', path: 'project_a', type: 'Project', parent_id: group.id)
+ proj = project_table.create!(name: 'project_a', path: 'project-a', namespace_id: group.id,
+ project_namespace_id: project_namespace.id)
+ project_statistics_table.create!(
+ project_id: proj.id,
+ namespace_id: group.id,
+ **stats
+ )
+ end
+ end
+end