test: cover RouterWebSocketTest

This commit is contained in:
dualfroz committed 2026-09-13 21:35:41 +02:00
1 parent 91f28de4de
commit a2cf52256a
1 file changed
+45
+45
View File
@@ -0,0 +1,45 @@
require 'minitest/autorun'
require 'prism'
class RouterWebSocketTest < Minitest::Test
def setup
@router = Prism::Router.new
end
def test_find_websocket_returns_the_registered_handler
handler = Class.new
@router.add_websocket('/cable', handler)
assert_same handler, @router.find_websocket('/cable')
end
def test_find_websocket_returns_nil_for_an_unregistered_path
assert_nil @router.find_websocket('/nope')
end
def test_websockets_are_exact_path_matches_not_prefixes
handler = Class.new
@router.add_websocket('/cable', handler)
assert_nil @router.find_websocket('/cable/extra')
end
def test_registering_the_same_path_twice_replaces_the_handler
first = Class.new
second = Class.new
@router.add_websocket('/cable', first)
@router.add_websocket('/cable', second)
assert_same second, @router.find_websocket('/cable')
end
def test_find_websocket_options_returns_an_empty_hash_for_an_unregistered_path
assert_equal({}, @router.find_websocket_options('/nope'))
end
def test_find_websocket_options_returns_nil_max_message_size_by_default
assert_nil @router.find_websocket_options('/nope')[:max_message_size]
end
def test_add_websocket_records_a_custom_max_message_size
@router.add_websocket('/cable', Class.new, max_message_size: 4096)
assert_equal 4096, @router.find_websocket_options('/cable')[:max_message_size]
end
end