Skip to content

Commit d4b2231

Browse files
committed
Add MCP::Client#resource_templates tests
1 parent 9aca7d6 commit d4b2231

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

test/mcp/client_test.rb

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,43 @@ def test_read_resource_returns_empty_array_when_no_contents
145145
assert_empty(contents)
146146
end
147147

148+
def test_resource_templates_sends_request_to_transport_and_returns_resource_templates_array
149+
transport = mock
150+
mock_response = {
151+
"result" => {
152+
"resourceTemplates" => [
153+
{ "name" => "template1", "uriTemplate" => "file:///path/{filename}", "description" => "First template" },
154+
{ "name" => "template2", "uriTemplate" => "http://example.com/{id}", "description" => "Second template" },
155+
],
156+
},
157+
}
158+
159+
transport.expects(:send_request).with do |args|
160+
args.dig(:request, :method) == "resources/templates/list" && args.dig(:request, :jsonrpc) == "2.0"
161+
end.returns(mock_response).once
162+
163+
client = Client.new(transport: transport)
164+
resource_templates = client.resource_templates
165+
166+
assert_equal(2, resource_templates.size)
167+
assert_equal("template1", resource_templates.first["name"])
168+
assert_equal("file:///path/{filename}", resource_templates.first["uriTemplate"])
169+
assert_equal("template2", resource_templates.last["name"])
170+
assert_equal("http://example.com/{id}", resource_templates.last["uriTemplate"])
171+
end
172+
173+
def test_resource_templates_returns_empty_array_when_no_resource_templates
174+
transport = mock
175+
mock_response = { "result" => { "resourceTemplates" => [] } }
176+
177+
transport.expects(:send_request).returns(mock_response).once
178+
179+
client = Client.new(transport: transport)
180+
resource_templates = client.resource_templates
181+
182+
assert_empty(resource_templates)
183+
end
184+
148185
def test_prompts_sends_request_to_transport_and_returns_prompts_array
149186
transport = mock
150187
mock_response = {

0 commit comments

Comments
 (0)