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/migrations_helpers/schema_version_finder.rb')
-rw-r--r--spec/support/migrations_helpers/schema_version_finder.rb34
1 files changed, 0 insertions, 34 deletions
diff --git a/spec/support/migrations_helpers/schema_version_finder.rb b/spec/support/migrations_helpers/schema_version_finder.rb
deleted file mode 100644
index b677db7ea26..00000000000
--- a/spec/support/migrations_helpers/schema_version_finder.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-# frozen_string_literal: true
-
-# Sometimes data migration specs require adding invalid test data in order to test
-# the migration (e.g. adding a row with null foreign key). Certain db migrations that
-# add constraints (e.g. NOT NULL constraint) prevent invalid records from being added
-# and data migration from being tested. For this reason, SchemaVersionFinder can be used
-# to find and use schema prior to specified one.
-#
-# @example
-# RSpec.describe CleanupThings, :migration, schema: MigrationHelpers::SchemaVersionFinder.migration_prior(AddNotNullConstraint) do ...
-#
-# SchemaVersionFinder returns schema version prior to the one specified, which allows to then add
-# invalid records to the database, which in return allows to properly test data migration.
-module MigrationHelpers
- class SchemaVersionFinder
- def self.migrations_paths
- ActiveRecord::Migrator.migrations_paths
- end
-
- def self.migration_context
- ActiveRecord::MigrationContext.new(migrations_paths, ActiveRecord::SchemaMigration)
- end
-
- def self.migrations
- migration_context.migrations
- end
-
- def self.migration_prior(migration_klass)
- migrations.each_cons(2) do |previous, migration|
- break previous.version if migration.name == migration_klass.name
- end
- end
- end
-end