spec/spec_helper.rb in schema_validations-2.3.0 vs spec/spec_helper.rb in schema_validations-2.4.0

- old
+ new

@@ -1,50 +1,54 @@ +# frozen_string_literal: true + require 'simplecov' -require 'simplecov-gem-profile' -SimpleCov.start "gem" +SimpleCov.start $LOAD_PATH.unshift(File.dirname(__FILE__)) $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) require 'rspec' require 'active_record' require 'schema_validations' require 'schema_dev/rspec' -require 'database_cleaner' -DatabaseCleaner.strategy = :truncation SchemaDev::Rspec.setup RSpec.configure do |config| config.around(:each) do |example| - DatabaseCleaner.clean remove_all_models - class ActiveRecord::InternalMetadata - def self.create_table - end - - def self.[]=(first, second) - end - end - ActiveRecord::Migration.suppress_messages do example.run + ensure + ActiveRecord::Base.connection.tables.each do |table| + ActiveRecord::Migration.drop_table table, force: :cascade + end end end end # avoid deprecation warnings I18n.enforce_available_locales = true -Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f} +Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each { |f| require f } def remove_all_models - ObjectSpace.each_object(Class) do |c| - next unless c.ancestors.include? ActiveRecord::Base - next if c == ActiveRecord::Base - next if c.name.blank? + ActiveRecord::Base.descendants.each do |c| + next if c == ActiveRecord::InternalMetadata + next if c == ActiveRecord::SchemaMigration ActiveSupport::Dependencies.remove_constant c.name + end +end + +def define_schema(config={}, &block) + ActiveRecord::Migration.suppress_messages do + ActiveRecord::Schema.define do + connection.tables.each do |table| + drop_table table, force: :cascade + end + instance_eval &block + end end end SimpleCov.command_name "[Ruby #{RUBY_VERSION} - ActiveRecord #{::ActiveRecord::VERSION::STRING}]"