I tried to follow this answer: https://stackoverflow.com/a/32168734/148844
# Logs in a test user.
def log_in_as(user, options = {})
password = options[:password] || 'password'
remember_me = options[:remember_me] || '1'
if integration_test?
post user_session_path, session: { email: user.email,
password: password,
remember_me: remember_me }
But I got this warning:
DEPRECATION WARNING: Using positional arguments in integration tests has been deprecated,
in favor of keyword arguments, and will be removed in Rails 5.1.
Deprecated style:
get "/profile", { id: 1 }, { "X-Extra-Header" => "123" }
New keyword style:
get "/profile", params: { id: 1 }, headers: { "X-Extra-Header" => "123" }
(called from log_in_as at C:/Users/Chloe/workspace/fortuneempire/test/test_helper.rb:16)
So I tried
post action: user_session_path, session: { email: user.email,
password: password,
remember_me: remember_me }
and it gave
URI::InvalidURIError: bad URI(is not URI?): http://www.example.com:80{:action=>"/users/sign_in", :session=>{:email=>"MyString@example.com", :password=>"password", :remember_me=>"1"}}
test/test_helper.rb:16:in `log_in_as'
I honestly can't see anything wrong with it. http://api.rubyonrails.org/classes/ActionController/TestCase/Behavior.html#method-i-get
This questions solution was to label the header parameters, but I have no such hash.
Rails 5.0.2