Search code examples
rspecrequestrspec-rails

RSpec Request spec setup issue


I have the following spec:

it "allows a valid request" do
  user = create :user

  headers = {"Authorization" => "Bearer #{user.api_token}"}
  get "/api/v1/user", nil, headers
  expect(response.status).to eq(200)
end

which should work, however, RSpec disagrees:

Failure/Error: get "/api/v1/user", nil, headers
     
     ArgumentError:
       wrong number of arguments (given 3, expected 1)

Why does RSpec see a different signature for get to what is expected (examples)

What's missing here?


Solution

  • The params and headers arguments are should be hash-style.

    so your request-line should be like below.

    get "/api/v1/user", params: nil, headers: headers
    

    Or this also works.

    get "/api/v1/user", headers: headers