Sha256: ebe03caacf3240c9086bf8d0d56f23b2c7ced44a45a83f9995a21e7c4df84d97

Contents?: true

Size: 1.4 KB

Versions: 6

Compression:

Stored size: 1.4 KB

Contents

module Adva
  module Testing
    autoload :Engine, 'adva/testing/engine'

    Rails::Engine.extend(Engine)

    class << self
      def setup(options = {})
        Adva.out = StringIO.new('')
        setup_logging(options)
        setup_active_record

        each_engine { |e| e.setup_load_paths }
        ActiveSupport::Slices.register

        each_engine { |e| e.new.require_patches }
        each_engine { |e| e.migrate }

        load_assertions
        load_factories
      end

      def each_engine(&block)
        Adva.engines.each(&block)
      end

      def load_assertions
        Adva.engines.each { |e| e.load_assertions }
      end

      def load_factories
        Adva.engines.each { |e| e.load_factories }
      end

      def load_cucumber_support
        Adva.engines.each { |e| e.load_cucumber_support }
      end

      def load_helpers
        Adva.engines.each { |e| e.load_helpers }
      end

      def setup_logging(options)
        if log = options[:log]
          FileUtils.touch(log) unless File.exists?(log)
          ActiveRecord::Base.logger = Logger.new(log)
          ActiveRecord::LogSubscriber.attach_to(:active_record)
        end
      end

      def setup_active_record
        ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
        ActiveRecord::Migration.verbose = false
        DatabaseCleaner.strategy = :truncation
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
adva-core-0.0.9 lib/adva/testing.rb
adva-core-0.0.8 lib/adva/testing.rb
adva-core-0.0.7 lib/adva/testing.rb
adva-core-0.0.6 lib/adva/testing.rb
adva-core-0.0.5 lib/adva/testing.rb
adva-core-0.0.4 lib/adva/testing.rb