Support icons parameter
This PR adds support for the optional `icons` parameter in prompt, resource, resource template, and server info. The specifications for `icons` are as follows. https://modelcontextprotocol.io/specification/2025-11-25/schema#icon Resolves https://github.com/modelcontextprotocol/ruby-sdk/issues/127.
This commit is contained in:
parent
d745ccdedc
commit
028c5f3291
1 changed files with 139 additions and 15 deletions
48
test/mcp/icon_test.rb
Normal file
48
test/mcp/icon_test.rb
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require "test_helper"
|
||||
|
||||
module MCP
|
||||
class IconTest < ActiveSupport::TestCase
|
||||
def test_initialization
|
||||
icon = Icon.new(mime_type: "image/png", sizes: ["48x48", "96x96"], src: "https://example.com", theme: "light")
|
||||
|
||||
assert_equal("image/png", icon.mime_type)
|
||||
assert_equal(["48x48", "96x96"], icon.sizes)
|
||||
assert_equal("https://example.com", icon.src)
|
||||
assert_equal("light", icon.theme)
|
||||
|
||||
assert_equal({ mimeType: "image/png", sizes: ["48x48", "96x96"], src: "https://example.com", theme: "light" }, icon.to_h)
|
||||
end
|
||||
|
||||
def test_initialization_by_default
|
||||
icon = Icon.new
|
||||
|
||||
assert_nil(icon.mime_type)
|
||||
assert_nil(icon.sizes)
|
||||
assert_nil(icon.src)
|
||||
assert_nil(icon.theme)
|
||||
|
||||
assert_empty(icon.to_h)
|
||||
end
|
||||
|
||||
def test_valid_theme_for_light
|
||||
assert_nothing_raised do
|
||||
Icon.new(theme: "light")
|
||||
end
|
||||
end
|
||||
|
||||
def test_valid_theme_for_dark
|
||||
assert_nothing_raised do
|
||||
Icon.new(theme: "dark")
|
||||
end
|
||||
end
|
||||
|
||||
def test_invalid_theme
|
||||
exception = assert_raises(ArgumentError) do
|
||||
Icon.new(theme: "unexpected")
|
||||
end
|
||||
assert_equal('The value of theme must specify "light" or "dark".', exception.message)
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Reference in a new issue