@@ -34,18 +34,23 @@ class ServerTest < ActiveSupport::TestCase
3434 @server = Server . new ( name : @server_name , tools : [ @tool ] , prompts : [ @prompt ] , resources : [ @resource ] )
3535 end
3636
37- test "#handle ping request returns pong" do
37+ # https://spec.modelcontextprotocol.io/specification/2024-11-05/basic/utilities/ping/#behavior-requirements
38+ test "#handle ping request returns empty response" do
3839 request = {
3940 jsonrpc : "2.0" ,
4041 method : "ping" ,
41- id : 1 ,
42+ id : "123" ,
4243 }
4344
4445 response = @server . handle ( request )
45- refute_nil response
46-
47- assert_equal "pong" , response [ :result ]
48- assert_equal 1 , response [ :id ]
46+ assert_equal (
47+ {
48+ "jsonrpc" : "2.0" ,
49+ "id" : "123" ,
50+ "result" : { } ,
51+ } ,
52+ response ,
53+ )
4954 end
5055
5156 test "#handle initialize request returns protocol info, server info, and capabilities" do
@@ -58,11 +63,24 @@ class ServerTest < ActiveSupport::TestCase
5863 response = @server . handle ( request )
5964 refute_nil response
6065
61- result = response [ :result ]
62- assert_equal Server ::PROTOCOL_VERSION , result [ :protocolVersion ]
63- assert_kind_of Hash , result [ :capabilities ]
64- assert_equal @server_name , result [ :serverInfo ] [ :name ]
65- assert_equal ModelContextProtocol ::VERSION , result [ :serverInfo ] [ :version ]
66+ expected_result = {
67+ "jsonrpc" : "2.0" ,
68+ "id" : 1 ,
69+ "result" : {
70+ "protocolVersion" : "2024-11-05" ,
71+ "capabilities" : {
72+ "prompts" : { } ,
73+ "resources" : { } ,
74+ "tools" : { } ,
75+ } ,
76+ "serverInfo" : {
77+ "name" : @server_name ,
78+ "version" : ModelContextProtocol ::VERSION ,
79+ } ,
80+ } ,
81+ }
82+
83+ assert_equal expected_result , response
6684 end
6785
6886 test "#handle returns nil for notification requests" do
0 commit comments