diff --git a/lib/rspec/rails/configuration.rb b/lib/rspec/rails/configuration.rb index 4c0e789a6b..3d16318ab1 100644 --- a/lib/rspec/rails/configuration.rb +++ b/lib/rspec/rails/configuration.rb @@ -67,7 +67,8 @@ def self.initialize_configuration(config) # rubocop:disable Metrics/MethodLength config.add_setting :use_transactional_fixtures, alias_with: :use_transactional_examples config.add_setting :use_instantiated_fixtures config.add_setting :global_fixtures - config.add_setting :fixture_path + config.singleton_class.class_exec { attr_accessor :fixture_path } + config.include RSpec::Rails::FixtureSupport, :use_fixtures # We'll need to create a deprecated module in order to properly report to @@ -80,7 +81,8 @@ def self.initialize_configuration(config) # rubocop:disable Metrics/MethodLength config.include RSpec::Rails::FixtureSupport if ::Rails::VERSION::STRING > '5' - config.add_setting :file_fixture_path, default: 'spec/fixtures/files' + config.singleton_class.class_eval { attr_accessor :file_fixture_path } + config.file_fixture_path = 'spec/fixtures/files' config.include RSpec::Rails::FileFixtureSupport end diff --git a/spec/rspec/rails/configuration_spec.rb b/spec/rspec/rails/configuration_spec.rb index 5d991a5eaa..d446f99c77 100644 --- a/spec/rspec/rails/configuration_spec.rb +++ b/spec/rspec/rails/configuration_spec.rb @@ -23,15 +23,16 @@ opts ||= {} default_value = opts[:default] alias_setting = opts[:alias_with] + skip_predicate = opts[:skip_predicate] query_method = accessor predicate_method = "#{accessor}?".to_sym command_method = "#{accessor}=".to_sym specify "`##{query_method}` is `#{default_value.inspect}` by default" do - expect(config.send(query_method)).to be(default_value) + expect(config.send(query_method)).to eq(default_value) end - specify "`##{predicate_method}` is `#{!!default_value}` by default" do + specify "`##{predicate_method}` is `#{!!default_value}` by default", unless: skip_predicate do expect(config.send(predicate_method)).to be(!!default_value) end @@ -71,9 +72,15 @@ include_examples "adds setting", :use_instantiated_fixtures + include_examples "adds setting", :use_active_record, default: true + include_examples "adds setting", :global_fixtures - include_examples "adds setting", :fixture_path + include_examples "adds setting", :fixture_path, skip_predicate: true + + include_examples "adds setting", :file_fixture_path, + default: 'spec/fixtures/files', + skip_predicate: true include_examples "adds setting", :rendering_views