@@ -622,6 +622,62 @@ class StreamableHTTPTransportTest < ActiveSupport::TestCase
622622 assert_empty ( response [ 2 ] )
623623 end
624624
625+ test "handles POST request when JSON-RPC notification object is received" do
626+ notification_request = create_rack_request (
627+ "POST" ,
628+ "/" ,
629+ { "CONTENT_TYPE" => "application/json" } ,
630+ { jsonrpc : "2.0" , method : "some_notification" } . to_json ,
631+ )
632+
633+ response = @transport . handle_request ( notification_request )
634+ assert_equal 202 , response [ 0 ]
635+ assert_empty ( response [ 1 ] )
636+ assert_empty ( response [ 2 ] )
637+ end
638+
639+ test "handles POST request when JSON-RPC response object with result is received" do
640+ response_request = create_rack_request (
641+ "POST" ,
642+ "/" ,
643+ { "CONTENT_TYPE" => "application/json" } ,
644+ { jsonrpc : "2.0" , id : "123" , result : { content : { type : "text" } } } . to_json ,
645+ )
646+
647+ response = @transport . handle_request ( response_request )
648+ assert_equal 202 , response [ 0 ]
649+ assert_empty ( response [ 1 ] )
650+ assert_empty ( response [ 2 ] )
651+ end
652+
653+ test "handles POST request when JSON-RPC response object with error is received" do
654+ response_request = create_rack_request (
655+ "POST" ,
656+ "/" ,
657+ { "CONTENT_TYPE" => "application/json" } ,
658+ { jsonrpc : "2.0" , id : "123" , error : { content : { type : "text" } } } . to_json ,
659+ )
660+
661+ response = @transport . handle_request ( response_request )
662+ assert_equal 202 , response [ 0 ]
663+ assert_empty ( response [ 1 ] )
664+ assert_empty ( response [ 2 ] )
665+ end
666+
667+ test "handles POST request when JSON-RPC error object is received" do
668+ response_request = create_rack_request (
669+ "POST" ,
670+ "/" ,
671+ { "CONTENT_TYPE" => "application/json" } ,
672+ { jsonrpc : "2.0" , id : "123" , error : { content : { type : "text" } } } . to_json ,
673+ )
674+
675+ response = @transport . handle_request ( response_request )
676+ assert_equal 202 , response [ 0 ]
677+ assert_empty ( response [ 1 ] )
678+ assert_empty ( response [ 2 ] )
679+ end
680+
625681 private
626682
627683 def create_rack_request ( method , path , headers , body = nil )
0 commit comments