Имея некоторые трудности с передачей моей спецификации аутентификации для API, который я строю в Rails.
Моя спецификация выглядит так:
RSpec.describe 'POST /login', type: :request do
let(:user) { create(:user) }
let(:url) { '/login' }
let(:params) do
{
user: {
username: user.username,
email: user.email,
password: user.password
}
}
end
context 'when params are correct' do
before do
post url, params: params
end
it 'returns 200' do
expect(response).to have_http_status(200)
end
...
Однако, когда я пытаюсь запуститьэто дает мне следующую ошибку: TypeError: no implicit conversion of nil into String
Когда я использую pry, чтобы войти и отладить его, переменная params
преобразуется в правильный хеш: {:user=>{:username=>"MyString", :email=>"mystring", :password=>"fooBar"}}
, и URL-адрес также правильный: "/login"
Он также не работает при использовании самого хэша вместо переменной, например: post url, params: {:user=>{:username=>"MyString", :email=>"mystring", :password=>"fooBar"}}
Однако странно, что я могу передать что-то вроде {:user=>'hello'}
ион будет запущен, хотя и вернет ошибку 401.Что я здесь не так делаю?