# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'

# 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}

RSpec.configure do |config|
  # == Mock Framework
  #
  # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
  #
  # config.mock_with :mocha
  # config.mock_with :flexmock
  # config.mock_with :rr
  config.mock_with :rspec

  # Use color in STDOUT
  config.color_enabled = true

  # add devise test helpers
  config.include Devise::TestHelpers, type: :controller

  # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
  config.fixture_path = "#{::Rails.root}/spec/fixtures"

  # If you're not using ActiveRecord, or you'd prefer not to run each of your
  # examples within a transaction, remove the following line or assign false
  # instead of true.
  config.use_transactional_fixtures = false
  config.before(:suite) do
    DatabaseCleaner.strategy = :truncation
  end

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

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

def ppp(obj)
  puts ERB::Util.html_escape(obj.pretty_inspect).gsub(" ", '&nbsp;'*2).gsub("\t", '&nbsp;'*4).gsub("\n", "<br />\n")
end

def without_timestamping_of(*klasses)
  if block_given?
    klasses.delete_if { |klass| !klass.record_timestamps }
    klasses.each { |klass| klass.record_timestamps = false }
    begin
      yield
    ensure
      klasses.each { |klass| klass.record_timestamps = true  }
    end
  end
end

