# -*- encoding : utf-8 -*-

ENV["RAILS_ENV"] = "test"
require File.expand_path("../lib/decko/environment", __dir__)
require "rails/test_help"
require "pathname"

unless defined? TEST_ROOT
  TEST_ROOT = Pathname.new(__dir__).cleanpath(true).to_s

  module ActiveSupport
    class TestCase
      # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical
      # order.
      #
      # Note: You'll currently still have to declare fixtures explicitly in integration
      # tests -- they do not yet inherit this setting
      # fixtures :all

      # Add more helper methods to be used by all tests here...

      # Transactional fixtures accelerate your tests by wrapping each test method
      # in a transaction that's rolled back on completion.  This ensures that the
      # test database remains unchanged so your fixtures don't have to be reloaded
      # between every test method.  Fewer database queries means faster tests.
      #
      # Read Mike Clark's excellent walkthrough at
      #   http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting
      #
      # Every ActiveRecord database supports transactions except MyISAM tables
      # in MySQL.  Turn off transactional fixtures in this case; however, if you
      # don't care one way or the other, switching from MyISAM to InnoDB tables
      # is recommended.
      self.use_transactional_fixtures = true

      # Instantiated fixtures are slow, but give you @david where otherwise you
      # would need people(:david).  If you don't want to migrate your existing
      # test cases which use the @david style and don't mind the speed hit (each
      # instantiated fixtures translates to a database query per test method),
      # then set this back to true.
      self.use_instantiated_fixtures  = false
    end
  end
end
