about summary refs log tree commit diff
path: root/spec/middleware/handle_bad_encoding_middleware_spec.rb
blob: 8c0d24f1821e7430d9f054de156b0e2c55633a8f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
require 'rails_helper'

RSpec.describe HandleBadEncodingMiddleware do
  let(:app) { double() }
  let(:middleware) { HandleBadEncodingMiddleware.new(app) }

  it "request with query string is unchanged" do
    expect(app).to receive(:call).with("PATH" => "/some/path", "QUERY_STRING" => "name=fred")
    middleware.call("PATH" => "/some/path", "QUERY_STRING" => "name=fred")
  end

  it "request with no query string is unchanged" do
    expect(app).to receive(:call).with("PATH" => "/some/path")
    middleware.call("PATH" => "/some/path")
  end

  it "request with invalid encoding in query string drops query string" do
    expect(app).to receive(:call).with("QUERY_STRING" => "", "PATH" => "/some/path")
    middleware.call("QUERY_STRING" => "q=%2Fsearch%2Fall%Forder%3Ddescending%26page%3D5%26sort%3Dcreated_at", "PATH" => "/some/path")
  end
end