Sha256: 8e0fc7d88228ce1b780326cc9b1fa37f7e852d3ee66bdfe7b9ec5f0e394e3367

Contents?: true

Size: 1.47 KB

Versions: 14

Compression:

Stored size: 1.47 KB

Contents

module RSpec
  module Rails
    # @private
    module FixtureFileUploadSupport
      delegate :fixture_file_upload, to: :rails_fixture_file_wrapper

    private

      # In Rails 7.0 fixture file path needs to be relative to `file_fixture_path` instead, this change
      # was brought in with a deprecation warning on 6.1. In Rails 7.0 expect to rework this to remove
      # the old accessor.
      def rails_fixture_file_wrapper
        RailsFixtureFileWrapper.file_fixture_path = nil
        resolved_fixture_path =
          if respond_to?(:file_fixture_path) && !file_fixture_path.nil?
            file_fixture_path.to_s
          elsif respond_to?(:fixture_paths)
            (RSpec.configuration.fixture_paths&.first || '').to_s
          else
            (RSpec.configuration.fixture_path || '').to_s
          end
        RailsFixtureFileWrapper.file_fixture_path = File.join(resolved_fixture_path, '') unless resolved_fixture_path.strip.empty?
        RailsFixtureFileWrapper.instance
      end

      class RailsFixtureFileWrapper
        include ActionDispatch::TestProcess if defined?(ActionDispatch::TestProcess)
        include ActiveSupport::Testing::FileFixtures

        class << self
          if ::Rails::VERSION::STRING < "7.1.0"
            attr_accessor :fixture_path
          else
            attr_accessor :fixture_paths
          end

          # Get instance of wrapper
          def instance
            @instance ||= new
          end
        end
      end
    end
  end
end

Version data entries

14 entries across 13 versions & 3 rubygems

Version Path
rspec-rails-7.1.1 lib/rspec/rails/fixture_file_upload_support.rb
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.1.0/gems/rspec-rails-7.1.0/lib/rspec/rails/fixture_file_upload_support.rb
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.3.0/gems/rspec-rails-7.1.0/lib/rspec/rails/fixture_file_upload_support.rb
rspec-rails-7.1.0 lib/rspec/rails/fixture_file_upload_support.rb
rspec-rails-7.0.2 lib/rspec/rails/fixture_file_upload_support.rb
rspec-rails-7.0.1 lib/rspec/rails/fixture_file_upload_support.rb
rspec-rails-7.0.0 lib/rspec/rails/fixture_file_upload_support.rb
rspec-rails-6.1.5 lib/rspec/rails/fixture_file_upload_support.rb
rspec-rails-6.1.4 lib/rspec/rails/fixture_file_upload_support.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/rspec-rails-6.1.3/lib/rspec/rails/fixture_file_upload_support.rb
rspec-rails-6.1.3 lib/rspec/rails/fixture_file_upload_support.rb
rspec-rails-6.1.2 lib/rspec/rails/fixture_file_upload_support.rb
rspec-rails-6.1.1 lib/rspec/rails/fixture_file_upload_support.rb
rspec-rails-6.1.0 lib/rspec/rails/fixture_file_upload_support.rb