Sha256: afc4d1472ecb50209d643118ec3ca7d442b813e80cba7540ec53b8c67fe05ee7

Contents?: true

Size: 1.58 KB

Versions: 1

Compression:

Stored size: 1.58 KB

Contents

require 'pry'
require 'database_cleaner'

ENV['ORM'] ||= 'active_record'
require 'ardm/env'

Ardm.active_record do
  ActiveRecord::Base.configurations = { "ardm" => {
    "database" => "db/test.sqlite",
    "adapter" => "sqlite3"
  }}
  ActiveRecord::Base.establish_connection 'ardm'

  begin
    $stdout = StringIO.new
    load Pathname.new(__FILE__).dirname.expand_path.join("schema.rb")
  ensure
    $stdout = STDOUT
  end
end

Ardm.data_mapper do
  raise "TODO: DataMapper setup."
end

Dir["#{Pathname(__FILE__).dirname.expand_path}/shared/*.rb"].each { |file| require file }

RSpec.configure do |config|
  config.before(:suite) do
    DatabaseCleaner.strategy = :transaction
    DatabaseCleaner.clean_with(:truncation)
  end

  config.before(:each) do
    DatabaseCleaner.start
  end

  config.after(:each) do
    DatabaseCleaner.clean
  end

  def reset_raise_on_save_failure(object)
    name = :raise_on_save_failure
    ivar = "@#{name}"

    if object.respond_to? :singleton_class
      object.singleton_class.class_eval do
        remove_possible_method(name)
      end
    end

    object.instance_eval do
      if instance_variable_defined?(ivar)
        remove_instance_variable(ivar)
      end
    end
  end
end

DEPENDENCIES = {
  'bcrypt' => 'bcrypt-ruby',
}

def try_spec
  begin
    yield
  rescue LoadError => error
    match = error.message.match(/\Ano such file to load -- (.+)\z/)
    raise error unless match && (lib = match[1])

    gem_location = DEPENDENCIES[lib] || raise("Unknown lib #{lib}")

    warn "[WARNING] Skipping specs using #{lib}, please do: gem install #{gem_location}"
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ardm-0.1.0 spec/spec_helper.rb