spec_helper.rb 2.05 KB

require 'debugger'
require 'database_cleaner'
require 'rubygems'
require "active_record"
require 'active_support'
require 'sqlite3'

$LOAD_PATH.unshift(File.dirname(__FILE__))
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'rails'))
require "init"

require "rails/railtie"

module Rails
  def self.env
    @_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development")
  end
end



ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
# ActiveRecord::Base.configurations = true
# ActiveRecord::Base.logger = Logger.new(STDOUT)

ActiveRecord::Schema.verbose = false

ActiveRecord::Schema.define do

  create_table "users", :force => true do |t|
    t.column "name",       :text
    t.column "account_id", :integer
  end

  create_table "people", :force => true do |t|
    t.column "name",       :text
  end

  create_table "accounts", :force => true do |t|
    t.column "name",       :text
  end

  create_table "products", :force => true do |t|
    t.column "name",       :text
    t.column "account_id", :integer
  end


  require_relative '../lib/generators/has_magic_fields/install/templates/migration'
  AddHasMagicFieldsTables.new.change
  
end


RSpec.configure do |config|
  
  config.before(:all) do
    class Account < ActiveRecord::Base
      include HasMagicFields::Extend
      has_many :users
      has_magic_fields
    end

    class Person < ActiveRecord::Base
      include HasMagicFields::Extend
      has_magic_fields
    end

    class User < ActiveRecord::Base
      include HasMagicFields::Extend
      belongs_to :account
      has_magic_fields :through => :account
    end 

    class Product < ActiveRecord::Base
      include HasMagicFields::Extend
      belongs_to :account
      has_magic_fields :through => :account
    end 

  end
  
  config.after(:all) do
  end

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

  config.around(:each) do |example|
    DatabaseCleaner.cleaning do
      example.run
    end
  end
end