Я пытаюсь написать простой тест для проверки обновления Employee
, и хотя он работает на практике, я все равно хотел написать тест.
RSpec.describe EmployeesController, type: :controller do
before(:each) do
admin_user = FactoryBot.create(
:user,
user_type: 1,
email: "admin@admin.com",
password: "oeifhoi2345tf",
password_confirmation: "oeifhoi2345tf"
)
login_as(admin_user)
@employee = create(:employee)
end
it 'expects employee values to update following update' do
p @employee
put :update, params: {
id: @employee[:id],
employee: { name: "New Name" }
}
@employee.reload
p @employee
expect(@employee.name).to eq("New Name")
end
end
Тест не пройден и @employee.name
остается без изменений. Я чувствую, что обновление даже не происходит, потому что я добавил строку печати в свой контроллер и не вижу ее в своих журналах:
def update
p "IN UPDATE"
if @employee.update(employee_params)
redirect_to edit_employee_path(@employee[:id])
else
render :edit
end
end
Что-то мне не хватает в моем put
звонке?