Я пытаюсь запустить тест с RSpe c, но он всегда возвращает одну и ту же ошибку:
DevicesController#update when user is a manager must update any device
Failure/Error: put device_path device_id, params: params, headers: { 'Content-Type': 'application/vnd.api+json' }
TypeError:
no implicit conversion of String into Hash
Моя функция с параметрами запроса:
def update_params(device, device_id)
{
data: {
id: device.id,
type: 'device',
attributes: {
device_id: device_id
}
}
}.to_json
end
Мой тест используя фабрики:
context 'when user is a manager' do
let(:user) { create(:manager).account }
let(:firebase_token) { Faker::Crypto.sha1 }
let(:device_id) { physical_device.id }
let(:params) { update_params(physical_device, firebase_token) }
it 'must update any device' do
expect(Device.find(device_id).device_id).to eq(firebase_token)
end
end
Запрос устройства обновления ОС:
put device_path device_id, params: params, headers: { 'Content-Type': 'application/vnd.api+json' }