@@ -622,6 +622,62 @@ class StreamableHTTPTransportTest < ActiveSupport::TestCase
622
622
assert_empty ( response [ 2 ] )
623
623
end
624
624
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
+
625
681
private
626
682
627
683
def create_rack_request ( method , path , headers , body = nil )
0 commit comments