Я пытаюсь протестировать некоторую конечную точку PUT / PATCH из моего API, но мой 'record_to_update' не изменяется, как ожидалось.
Я организую спецификацию следующим образом, используя Rails 5.2 и RSpec 3.8:
require 'rails_helper'
RSpec.describe UsersController, type: :controller do
context 'when request with no valid headers' do
...
...
...
end
context 'when resquest with valid headers' do
before do
request.accept = 'application/vnd.api+json'
request.content_type = 'application/vnd.api+json'
2.times do
create(:user)
end
end
describe 'PATCH/PUT /users/:id' do
let(:record_to_update) { create(:user) }
let(:user_params) do
{ id: first_user.id, name: 'goku', email: 'goku@bol.com' }
end
before do
put :update, params: { id: record_to_update, user: user_params }
record_to_update.reload
end
it 'should update user' do
expect(record_to_update.name).to eq('goku')
expect(response.status).to eq 200
end
end
end
end
Как я уже сказал, проблема, с которой я сталкиваюсь, заключается в том, что 'record_to_update' не выполняется. Я уже тестировал ту же конечную точку PUT / PATCH в том же API с Postman и успешно обновил ее. Что я тут не так делаю?
Заранее спасибо.