spec/spec_helper.rb in popolo-0.0.3 vs spec/spec_helper.rb in popolo-0.1.0

- old
+ new

@@ -1,86 +1,76 @@ -require 'spork' +# This file was generated by the `rails generate rspec:install` command. Conventionally, all +# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`. +# The generated `.rspec` file contains `--require spec_helper` which will cause this +# file to always be loaded, without a need to explicitly require it in any files. +# +# Given that it is always loaded, you are encouraged to keep this file as +# light-weight as possible. Requiring heavyweight dependencies from this file +# will add to the boot time of your test suite on EVERY test run, even for an +# individual file that may not need all of that loaded. Instead, make a +# separate helper file that requires this one and then use it only in the specs +# that actually need it. +# +# The `.rspec` file also contains a few flags that are not defaults but that +# users commonly want. +# +# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration +RSpec.configure do |config| +# The settings below are suggested to provide a good initial experience +# with RSpec, but feel free to customize to your heart's content. + # These two settings work together to allow you to limit a spec run + # to individual examples or groups you care about by tagging them with + # `:focus` metadata. When nothing is tagged with `:focus`, all examples + # get run. + config.filter_run :focus + config.run_all_when_everything_filtered = true -Spork.prefork do - ENV["RAILS_ENV"] ||= 'test' - - require 'coveralls' - Coveralls.wear! - - require 'rails/application' - # Prevent Spork from caching the routes. - Spork.trap_method(Rails::Application::RoutesReloader, :reload!) - # Prevent Spork from caching Popolo classes (see below). - Spork.trap_method(Rails::Application, :eager_load!) - - require File.expand_path("../dummy/config/environment.rb", __FILE__) - require 'rspec/rails' - - # Requires supporting ruby files with custom matchers and macros, etc, - # in spec/support/ and its subdirectories. - Dir[File.expand_path("../support/**/*.rb", __FILE__)].each {|f| require f} - - # Prevent Spork from caching Popolo classes (see above). - Rails.application.railties.all do |railtie| - unless railtie.respond_to?(:engine_name) && railtie.engine_name == 'popolo' - railtie.eager_load! - end + # Many RSpec users commonly either run the entire suite or an individual + # file, and it's useful to allow more verbose output when running an + # individual spec file. + if config.files_to_run.one? + # Use the documentation formatter for detailed output, + # unless a formatter has already been configured + # (e.g. via a command-line flag). + config.default_formatter = 'doc' end - # Create non-Popolo indexes. - Rails.application.railties.engines.each do |engine| - unless engine.engine_name == 'popolo' - engine.paths["app/models"].expanded.each do |path| - Rails::Mongoid.create_indexes("#{path}/**/*.rb") - end - end - end + # Print the 10 slowest examples and example groups at the + # end of the spec run, to help surface which specs are running + # particularly slow. + # config.profile_examples = 10 - require 'database_cleaner' - require 'mongoid-rspec' + # 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 - RSpec.configure do |config| - config.include Mongoid::Matchers + # Seed global randomization in this process using the `--seed` CLI option. + # Setting this allows you to use `--seed` to deterministically reproduce + # test failures related to randomization by passing the same `--seed` value + # as the one that triggered the failure. + Kernel.srand config.seed - config.mock_with :rspec - - config.after(:each) do - DatabaseCleaner.clean - end - - # http://railscasts.com/episodes/285-spork - config.treat_symbols_as_metadata_keys_with_true_values = true - config.run_all_when_everything_filtered = true - config.filter_run focus: true - config.infer_spec_type_from_file_location! + # rspec-expectations config goes here. You can use an alternate + # assertion/expectation library such as wrong or the stdlib/minitest + # assertions if you prefer. + config.expect_with :rspec do |expectations| + # Enable only the newer, non-monkey-patching expect syntax. + # For more details, see: + # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax + expectations.syntax = :expect end -end -Spork.each_run do - # DatabaseCleaner will not truncate system.indexes between tests, but it - # should be truncated before running the full test suite. - Mongoid::Sessions.default.drop + # rspec-mocks config goes here. You can use an alternate test double + # library (such as bogus or mocha) by changing the `mock_with` option here. + config.mock_with :rspec do |mocks| + # Enable only the newer, non-monkey-patching expect syntax. + # For more details, see: + # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/ + mocks.syntax = :expect - # It's now okay to load Popolo. - Rails.application.railties.engines.each do |engine| - if engine.engine_name == 'popolo' - engine.eager_load! - end + # Prevents you from mocking or stubbing a method that does not exist on + # a real object. This is generally recommended. + mocks.verify_partial_doubles = true end - - # Create Popolo indexes. - Rails.application.railties.engines.each do |engine| - if engine.engine_name == 'popolo' - engine.paths["app/models"].expanded.each do |path| - Rails::Mongoid.create_indexes("#{path}/**/*.rb") - end - end - end - - # Create dummy indexes. - Rails::Mongoid.create_indexes(File.expand_path("../dummy/app/models/**/*.rb", __FILE__)) - - # @todo I18n.backend.reload! - - require 'factory_girl_rails' - FactoryGirl.reload end