spec/spec_helper.rb in token_action-0.0.1 vs spec/spec_helper.rb in token_action-0.0.2

- old
+ new

@@ -1,94 +1,92 @@ -require 'spork' - -Spork.prefork do - ENV["RAILS_ENV"] ||= 'test' - - # @see https://github.com/plataformatec/devise/blob/master/test/test_helper.rb - TOKEN_ACTION_ORM = (ENV['TOKEN_ACTION_ORM'] || :active_record).to_sym - puts "\n==> Running specs with #{TOKEN_ACTION_ORM}" - - require 'rails/application' - # Prevent Spork from caching the routes. - Spork.trap_method(Rails::Application::RoutesReloader, :reload!) - # Prevent Spork from caching the engine's 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 the engine's classes (see above). - Rails.application.railties.all do |railtie| - unless railtie.respond_to?(:engine_name) && railtie.engine_name == 'token_action' - railtie.eager_load! - end +# 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, consider making +# a separate helper file that requires the additional dependencies and performs +# the additional setup, and require it from the spec files 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| + # 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| + # This option will default to `true` in RSpec 4. It makes the `description` + # and `failure_message` of custom matchers include text for helper methods + # defined using `chain`, e.g.: + # be_bigger_than(2).and_smaller_than(4).description + # # => "be bigger than 2 and smaller than 4" + # ...rather than: + # # => "be bigger than 2" + expectations.include_chain_clauses_in_custom_matcher_descriptions = true end - require 'database_cleaner' - require 'factory_girl_rails' - - case TOKEN_ACTION_ORM - when :active_record - require 'shoulda/matchers' - when :mongoid - require 'mongoid-rspec' - - # Create non-engine 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 + # 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| + # Prevents you from mocking or stubbing a method that does not exist on + # a real object. This is generally recommended, and will default to + # `true` in RSpec 4. + mocks.verify_partial_doubles = true end - RSpec.configure do |config| - if TOKEN_ACTION_ORM == :mongoid - config.include Mongoid::Matchers - end +# The settings below are suggested to provide a good initial experience +# with RSpec, but feel free to customize to your heart's content. +=begin + # 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 - config.mock_with :rspec + # Allows RSpec to persist some state between runs in order to support + # the `--only-failures` and `--next-failure` CLI options. We recommend + # you configure your source control system to ignore this file. + config.example_status_persistence_file_path = "spec/examples.txt" - # 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 - end -end + # Limits the available syntax to the non-monkey patched syntax that is + # recommended. For more details, see: + # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax + # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/ + # - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching + config.disable_monkey_patching! -Spork.each_run do - # It's now okay to load the engine. - Rails.application.railties.engines.each do |engine| - if engine.engine_name == 'token_action' - engine.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 - case TOKEN_ACTION_ORM - when :active_record - ActiveRecord::Migrator.migrate(File.expand_path("../dummy/db/migrate/", __FILE__)) - when :mongoid - # DatabaseCleaner will not truncate system.indexes between tests, but it - # should be truncated before running the full test suite. - Mongoid::Sessions.default.drop + # 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 - # Create the engine's indexes. - Rails.application.railties.engines.each do |engine| - if engine.engine_name == 'token_action' - engine.paths["app/models"].expanded.each do |path| - Rails::Mongoid.create_indexes("#{path}/**/*.rb") - end - end - end + # 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 - # Create dummy indexes. - Rails::Mongoid.create_indexes(File.expand_path("../dummy/app/models/**/*.rb", __FILE__)) - end - - # @todo I18n.backend.reload! - FactoryGirl.reload + # 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 +=end end