spec/spec_helper.rb in yousty-activeadmin-1.0.4.pre vs spec/spec_helper.rb in yousty-activeadmin-1.0.5.pre
- old
+ new
@@ -1,175 +1,17 @@
-require 'spec_helper_without_rails'
+$LOAD_PATH.unshift(File.dirname(__FILE__))
+$LOAD_PATH << File.expand_path('../support', __FILE__)
-module ActiveAdminIntegrationSpecHelper
- extend self
+ENV['BUNDLE_GEMFILE'] = File.expand_path('../../Gemfile', __FILE__)
+require "bundler"
+Bundler.setup
- def load_defaults!
- ActiveAdmin.unload!
- ActiveAdmin.load!
- ActiveAdmin.register(Category)
- ActiveAdmin.register(User)
- ActiveAdmin.register(Post){ belongs_to :user, :optional => true }
- reload_menus!
- end
+require 'detect_rails_version'
+ENV['RAILS'] = detect_rails_version
- def reload_menus!
- ActiveAdmin.application.namespaces.values.each{|n| n.reset_menu! }
- end
+require 'simplecov'
- # Sometimes we need to reload the routes within
- # the application to test them out
- def reload_routes!
- Rails.application.reload_routes!
- end
-
- # Helper method to load resources and ensure that Active Admin is
- # setup with the new configurations.
- #
- # Eg:
- # load_resources do
- # ActiveAdmin.regiser(Post)
- # end
- #
- def load_resources
- ActiveAdmin.unload!
- yield
- reload_menus!
- reload_routes!
- end
-
- # Sets up a describe block where you can render controller
- # actions. Uses the Admin::PostsController as the subject
- # for the describe block
- def describe_with_render(*args, &block)
- describe *args do
- include RSpec::Rails::ControllerExampleGroup
- render_views
- # metadata[:behaviour][:describes] = ActiveAdmin.namespaces[:admin].resources['Post'].controller
- module_eval &block
- end
- end
-
- def arbre(assigns = {}, helpers = mock_action_view, &block)
- Arbre::Context.new(assigns, helpers, &block)
- end
-
- def render_arbre_component(assigns = {}, helpers = mock_action_view, &block)
- arbre(assigns, helpers, &block).children.first
- end
-
- # Setup a describe block which uses capybara and rails integration
- # test methods.
- def describe_with_capybara(*args, &block)
- describe *args do
- include RSpec::Rails::IntegrationExampleGroup
- module_eval &block
- end
- end
-
- # Returns a fake action view instance to use with our renderers
- def mock_action_view(assigns = {})
- controller = ActionView::TestCase::TestController.new
- ActionView::Base.send :include, ActionView::Helpers
- ActionView::Base.send :include, ActiveAdmin::ViewHelpers
- ActionView::Base.send :include, Rails.application.routes.url_helpers
- ActionView::Base.new(ActionController::Base.view_paths, assigns, controller)
- end
- alias_method :action_view, :mock_action_view
-
- # A mock resource to register
- class MockResource
- end
-
-end
-
-ENV['RAILS_ENV'] = 'test'
-ENV['RAILS_ROOT'] = File.expand_path("../rails/rails-#{ENV['RAILS']}", __FILE__)
-
-# Create the test app if it doesn't exists
-unless File.exists?(ENV['RAILS_ROOT'])
- system 'rake setup'
-end
-
-# Ensure the Active Admin load path is happy
-require 'rails'
-require 'active_admin'
-ActiveAdmin.application.load_paths = [ENV['RAILS_ROOT'] + "/app/admin"]
-
-require ENV['RAILS_ROOT'] + '/config/environment'
-
-require 'rspec/rails'
-
-# Setup Some Admin stuff for us to play with
-include ActiveAdminIntegrationSpecHelper
-load_defaults!
-reload_routes!
-
-# Disabling authentication in specs so that we don't have to worry about
-# it allover the place
-ActiveAdmin.application.authentication_method = false
-ActiveAdmin.application.current_user_method = false
-
-# Don't add asset cache timestamps. Makes it easy to integration
-# test for the presence of an asset file
-ENV["RAILS_ASSET_ID"] = ''
-
-RSpec.configure do |config|
- config.use_transactional_fixtures = true
- config.use_instantiated_fixtures = false
- config.include Devise::TestHelpers, :type => :controller
- config.render_views = false
-end
-
-# All RSpec configuration needs to happen before any examples
-# or else it whines.
-require 'integration_example_group'
-RSpec.configure do |c|
- c.include RSpec::Rails::IntegrationExampleGroup, :example_group => { :file_path => /\bspec\/integration\// }
- c.include Devise::TestHelpers, :type => :controller
-end
-
-# Ensure this is defined for Ruby 1.8
-module MiniTest; class Assertion < Exception; end; end
-
-RSpec::Matchers.define :have_tag do |*args|
-
- match_unless_raises Test::Unit::AssertionFailedError do |response|
- tag = args.shift
- content = args.first.is_a?(Hash) ? nil : args.shift
-
- options = {
- :tag => tag.to_s
- }.merge(args[0] || {})
-
- options[:content] = content if content
-
- begin
- begin
- assert_tag(options)
- rescue NoMethodError
- # We are not in a controller, so let's do the checking ourselves
- doc = HTML::Document.new(response, false, false)
- tag = doc.find(options)
- assert tag, "expected tag, but no tag found matching #{options.inspect} in:\n#{response.inspect}"
- end
- # In Ruby 1.9, MiniTest::Assertion get's raised, so we'll
- # handle raising a Test::Unit::AssertionFailedError
- rescue MiniTest::Assertion => e
- raise Test::Unit::AssertionFailedError, e.message
- end
- end
-end
-
-# improve the performance of the specs suite by not logging anything
-# see http://blog.plataformatec.com.br/2011/12/three-tips-to-improve-the-performance-of-your-test-suite/
-Rails.logger.level = 4
-
-
-# Improves performance by forcing the garbage collector to run less often.
-unless ENV['DEFER_GC'] == '0' || ENV['DEFER_GC'] == 'false'
- require 'support/deferred_garbage_collection'
- RSpec.configure do |config|
- config.before(:all) { DeferredGarbageCollection.start }
- config.after(:all) { DeferredGarbageCollection.reconsider }
- end
+SimpleCov.start do
+ add_filter 'spec/'
+ add_filter 'features/'
+ add_filter 'bundle/' # for Travis
end