Sha256: c1b3d05b0d4e3de14ea95fc3fa4bc77e9f5f1e9586e4c47a2596b9f5e45cf8ae

Contents?: true

Size: 1.12 KB

Versions: 2

Compression:

Stored size: 1.12 KB

Contents

module Rails5Shims
  module ControllerTests
    # https://github.com/rails/rails/blob/b217354/actionpack/lib/action_controller/test_case.rb
    REQUEST_KWARGS = [:params, :session, :flash, :method, :body, :xhr].freeze

    def get(path, *args)
      fold_kwargs!(args)
      super
    end

    def post(path, *args)
      fold_kwargs!(args)
      super
    end

    def patch(path, *args)
      fold_kwargs!(args)
      super
    end

    def put(path, *args)
      fold_kwargs!(args)
      super
    end

    # Fold kwargs from test request into args
    # Band-aid for DEPRECATION WARNING
    def fold_kwargs!(args)
      hash = args && args[0]
      return unless hash.respond_to?(:key)
      Rails5Shims::ControllerTests::REQUEST_KWARGS.each do |kwarg|
        next unless hash.key?(kwarg)
        hash.merge! hash.delete(kwarg)
      end
    end

    # Uncomment for debugging where the kwargs warnings come from
    # def non_kwarg_request_warning
    #   super.tap do
    #     STDOUT.puts caller[2..3]
    #   end
    # end
  end
end
if Rails::VERSION::MAJOR < 5
  ActionController::TestCase.send :include, Rails5Shims::ControllerTests
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active_model_serializers-0.10.0 test/support/rails5_shims.rb
active_model_serializers-0.10.0.rc5 test/support/rails5_shims.rb