From 3832b6230f49a43ec332b3315a7e8fb5058dea44 Mon Sep 17 00:00:00 2001 From: Vladimir Dementyev Date: Wed, 3 Dec 2025 16:40:44 +0300 Subject: [PATCH] + connection_test.rb --- .../application_cable/connection_test.rb | 37 +++++++++++++++---- test/fixtures/sessions.yml | 3 ++ 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/test/channels/application_cable/connection_test.rb b/test/channels/application_cable/connection_test.rb index 6340bf9c0..5f661b0e0 100644 --- a/test/channels/application_cable/connection_test.rb +++ b/test/channels/application_cable/connection_test.rb @@ -2,12 +2,35 @@ require "test_helper" module ApplicationCable class ConnectionTest < ActionCable::Connection::TestCase - # test "connects with cookies" do - # cookies.signed[:user_id] = 42 - # - # connect - # - # assert_equal connection.user_id, "42" - # end + setup do + # Use non-37s account to assess that Current.account is set correctly + @account = accounts(:initech) + @session = sessions(:mike) + end + + test "connects with valid session and account info" do + cookies.signed[:session_token] = @session.signed_id + + connect "/cable", env: { "fizzy.external_account_id" => @account.external_account_id } + + assert_equal users(:mike), connection.current_user + assert_equal @account, Current.account + end + + test "rejects with invalid session token" do + cookies.signed[:session_token] = "invalid-session-id" + + assert_reject_connection do + connect "/cable", env: { "fizzy.external_account_id" => @account.external_account_id } + end + end + + test "rejects when account does not exist" do + cookies.signed[:session_token] = @session.signed_id + + assert_reject_connection do + connect "/cable", env: { "fizzy.external_account_id" => -1 } + end + end end end diff --git a/test/fixtures/sessions.yml b/test/fixtures/sessions.yml index a062f53fd..56fc614a5 100644 --- a/test/fixtures/sessions.yml +++ b/test/fixtures/sessions.yml @@ -9,3 +9,6 @@ jz: jason: identity: jason + +mike: + identity: mike