Merge pull request #107 from pusewicz/response-keyword-boolean

Response error keyword argument
This commit is contained in:
Koichi ITO 2025-08-20 18:26:17 +09:00 • committed by GitHub
commit 002df2c774
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 94 additions and 6 deletions

View file

@ -0,0 +1,77 @@
# frozen_string_literal: true
require "test_helper"
module MCP
class Tool
class ResponseTest < ActiveSupport::TestCase
test "#initialize with content" do
content = [{
type: "text",
text: "Unauthorized",
}]
response = Response.new(content)
assert_equal content, response.content
refute response.error?
end
test "#initialize with content and error set to true" do
content = [{
type: "text",
text: "Unauthorized",
}]
response = Response.new(content, error: true)
assert_equal content, response.content
assert response.error?
end
test "#initialize with content and error explicitly set to false" do
content = [{
type: "text",
text: "Unauthorized",
}]
response = Response.new(content, error: false)
assert_equal content, response.content
refute response.error?
end
test "#error? for a standard response" do
response = Response.new(nil, error: false)
refute response.error?
end
test "#error? for an error response" do
response = Response.new(nil, error: true)
assert response.error?
end
test "#to_h for a standard response" do
content = [{
type: "text",
text: "Unauthorized",
}]
response = Response.new(content)
actual = response.to_h
assert_equal [:content, :isError].sort, actual.keys.sort
assert_equal content, actual[:content]
refute actual[:isError]
end
test "#to_h for an error response" do
content = [{
type: "text",
text: "Unauthorized",
}]
response = Response.new(content, error: true)
actual = response.to_h
assert_equal [:content, :isError].sort, actual.keys.sort
assert_equal content, actual[:content]
assert actual[:isError]
end
end
end
end

View file

@ -45,7 +45,7 @@ module MCP
tool = TestTool
response = tool.call(message: "test")
assert_equal response.content, [{ type: "text", content: "OK" }]
assert_equal response.is_error, false
refute response.error?
end
test "allows declarative definition of tools as classes" do
@ -250,7 +250,7 @@ module MCP
tool = TypedTestTool
response = tool.call(message: "test")
assert_equal response.content, [{ type: "text", content: "OK" }]
assert_equal response.is_error, false
refute response.error?
end
class TestToolWithoutServerContext < Tool