# This file was generated by the `rspec --init` command. Conventionally, all
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
# Require this file using `require "spec_helper"` to ensure that it is only
# loaded once.
#
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
#
ENV["RACK_ENV"] = "test"
ENV['HEROKU_USERNAME'] = "addon-test"
ENV['HEROKU_PASSWORD'] = "123456"


require "bundler"
require "dotenv"
Bundler.require(:default, :test)
Dotenv.load('.env.test')

root = File.expand_path("../../", __FILE__)
ENV.update(Pliny::Utils.parse_env("#{root}/.env.test"))

require_relative "../lib/initializer"

require "fabrication"

# Get only App Config first, to avoid pulling in libraries until
# spec_support has a chance to run, which is important for at least
# simplecov and code coverage.
require_relative "../config/config"

# pull in test initializers
Pliny::Utils.require_glob("#{Config.root}/spec/spec_support/**/*.rb")

require_relative "../lib/initializer"

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

  config.before :all do
    load('db/seeds.rb') if File.exist?('db/seeds.rb')
  end

  config.before :each do
    DatabaseCleaner.start
  end

  config.after :each do
    DatabaseCleaner.clean
  end

  # config.disable_monkey_patching!
  # config.expect_with :minitest
  config.run_all_when_everything_filtered = true
  config.filter_run :focus

  # Run specs in random order to surface order dependencies. If you find an
  # order dependency and want to debug it, you can fix the order by providing
  # the seed, which is printed after each run.
  #     --seed 1234
  config.order = 'random'

  # the rack app to be tested with rack-test:
  def app
    @rack_app || fail("Missing @rack_app")
  end
end
