Rails 5.2 У меня есть следующий файл ApplicationCable :: Connection ruby:
module ApplicationCable
class Connection < ActionCable::Connection::Base
identified_by :current_user
def connect
self.current_user = find_verified_user
end
private
def find_verified_user
if verified_user = env['warden'].user
verified_user
else
message = "The user is not found. Connection rejected."
logger.add_tags 'ActionCable', message
self.transmit error: message
reject_unauthorized_connection
end
end
end
end
Я хочу проверить эту настройку и использовать следующий тест RSpec:
require 'rails_helper.rb'
RSpec.describe ApplicationCable::Connection, type: :channel do
it "successfully connects" do
connect "/cable", headers: { "X-USER-ID" => 325 }
expect(connection.user_id).to eq 325
end
end
Что не получаетсяс:
Сбой / Ошибка: если Verified_user = env ['warden']. user
NoMethodError: неопределенный метод `[] 'для nil: NilClass
Так что я хочучтобы заглушить код пользователя env ['warden']. и вернуть id 325. Я попробовал следующее:
allow(env['warden']).to receive(:user).and_return(325)
Но это привело к следующей ошибке:
undefined local variable or method
env '
Как я могу проверить этот класс?