Merge pull request #246 from koic/fix_prompt_nil_arguments
Fix `Prompt#validate_arguments!` crash when arguments are `nil`
This commit is contained in:
commit
29a32900fd
1 changed files with 50 additions and 4 deletions
|
|
@ -182,7 +182,7 @@ module MCP
|
|||
assert_equal expected, FullPrompt.to_h
|
||||
end
|
||||
|
||||
test "#to_h handles nil arguments value" do
|
||||
test "#to_h omits arguments key when arguments are not declared" do
|
||||
class NoArgumentsPrompt < Prompt
|
||||
description "No arguments prompt"
|
||||
end
|
||||
|
|
@ -196,6 +196,51 @@ module MCP
|
|||
assert_equal expected, prompt.to_h
|
||||
end
|
||||
|
||||
test "#validate_arguments! does not raise when arguments are not declared" do
|
||||
prompt_class = Class.new(Prompt) do
|
||||
prompt_name "no_args_prompt"
|
||||
description "A prompt with no arguments"
|
||||
# NOTE: no `arguments` declaration at all
|
||||
end
|
||||
|
||||
assert_nothing_raised do
|
||||
prompt_class.validate_arguments!({})
|
||||
end
|
||||
end
|
||||
|
||||
test "#validate_arguments! handles nil args" do
|
||||
prompt_class = Class.new(Prompt) do
|
||||
prompt_name "no_args_prompt"
|
||||
description "A prompt with no arguments"
|
||||
end
|
||||
|
||||
assert_nothing_raised do
|
||||
prompt_class.validate_arguments!(nil)
|
||||
end
|
||||
end
|
||||
|
||||
test "#validate_arguments! does not raise when arguments is explicitly set to nil" do
|
||||
prompt_class = Class.new(Prompt) do
|
||||
prompt_name "nil_args_prompt"
|
||||
description "A prompt with nil arguments"
|
||||
arguments nil
|
||||
end
|
||||
|
||||
assert_nothing_raised do
|
||||
prompt_class.validate_arguments!({})
|
||||
end
|
||||
end
|
||||
|
||||
test "#to_h omits arguments key when arguments is empty" do
|
||||
prompt = Prompt.define(
|
||||
name: "no_args_prompt",
|
||||
description: "a prompt without arguments",
|
||||
arguments: [],
|
||||
)
|
||||
|
||||
refute prompt.to_h.key?(:arguments)
|
||||
end
|
||||
|
||||
test "#to_h does not have `:icons` key when icons is empty" do
|
||||
prompt = Prompt.define(
|
||||
name: "prompt_without_icons",
|
||||
|
|
|
|||
Loading…
Reference in a new issue