From a2cf52256a76348c5811b645700baa2ae11aeff5 Mon Sep 17 00:00:00 2001 From: DualFroz Date: Sun, 13 Sep 2026 21:35:41 +0200 Subject: [PATCH] test: cover RouterWebSocketTest --- test/test_router_websocket.rb | 45 +++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 test/test_router_websocket.rb diff --git a/test/test_router_websocket.rb b/test/test_router_websocket.rb new file mode 100644 index 0000000..ce5269a --- /dev/null +++ b/test/test_router_websocket.rb @@ -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