engine/spec/spec_helper.rb

93 lines
2.4 KiB
Ruby

# Note: if segmentation fault with spork / imagemagick on mac os x, take a look at:
# http://stackoverflow.com/questions/2838307/why-is-this-rmagick-call-generating-a-segmentation-fault
require 'rubygems'
require 'spork'
# figure out where we are being loaded from
if $LOADED_FEATURES.grep(/spec\/spec_helper\.rb/).any?
begin
raise "foo"
rescue => e
puts <<-MSG
===================================================
It looks like spec_helper.rb has been loaded
multiple times. Normalize the require to:
require "spec/spec_helper"
Things like File.join and File.expand_path will
cause it to be loaded multiple times.
Loaded this time from:
#{e.backtrace.join("\n ")}
===================================================
MSG
end
end
Spork.prefork do
# Loading more in this block will cause your tests to run faster. However,
# if you change any configuration or code from libraries loaded here, you'll
# need to restart spork for it take effect.
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
# Avoid preloading models
require 'rails/mongoid'
Spork.trap_class_method(Rails::Mongoid, :load_models)
require File.expand_path('../../config/environment', __FILE__)
require 'rspec/rails'
require 'factory_girl'
Spork.trap_class_method(FactoryGirl, :find_definitions)
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
Locomotive.configure_for_test
RSpec.configure do |config|
config.include(Locomotive::RSpec::Matchers)
config.mock_with :mocha
config.before(:each) do
Locomotive.config.heroku = false
end
require 'database_cleaner'
config.before(:suite) do
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.orm = 'mongoid'
end
config.before(:each) do
if self.described_class != Locomotive::Import::Job
DatabaseCleaner.clean
end
end
config.before(:all) do
if self.described_class == Locomotive::Import::Job
DatabaseCleaner.clean
end
end
end
end
Spork.each_run do
# This code will be run each time you run your specs.
Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
# loading ruby file directly breaks the tests
# Dir[Rails.root.join('app/models/*.rb')].each { |f| load f }
end