@@ -182,7 +182,7 @@ class FullPrompt < Prompt
182182 assert_equal expected , FullPrompt . to_h
183183 end
184184
185- test "#to_h handles nil arguments value " do
185+ test "#to_h omits arguments key when arguments are not declared " do
186186 class NoArgumentsPrompt < Prompt
187187 description "No arguments prompt"
188188 end
@@ -196,6 +196,51 @@ class NoArgumentsPrompt < Prompt
196196 assert_equal expected , prompt . to_h
197197 end
198198
199+ test "#validate_arguments! does not raise when arguments are not declared" do
200+ prompt_class = Class . new ( Prompt ) do
201+ prompt_name "no_args_prompt"
202+ description "A prompt with no arguments"
203+ # NOTE: no `arguments` declaration at all
204+ end
205+
206+ assert_nothing_raised do
207+ prompt_class . validate_arguments! ( { } )
208+ end
209+ end
210+
211+ test "#validate_arguments! handles nil args" do
212+ prompt_class = Class . new ( Prompt ) do
213+ prompt_name "no_args_prompt"
214+ description "A prompt with no arguments"
215+ end
216+
217+ assert_nothing_raised do
218+ prompt_class . validate_arguments! ( nil )
219+ end
220+ end
221+
222+ test "#validate_arguments! does not raise when arguments is explicitly set to nil" do
223+ prompt_class = Class . new ( Prompt ) do
224+ prompt_name "nil_args_prompt"
225+ description "A prompt with nil arguments"
226+ arguments nil
227+ end
228+
229+ assert_nothing_raised do
230+ prompt_class . validate_arguments! ( { } )
231+ end
232+ end
233+
234+ test "#to_h omits arguments key when arguments is empty" do
235+ prompt = Prompt . define (
236+ name : "no_args_prompt" ,
237+ description : "a prompt without arguments" ,
238+ arguments : [ ] ,
239+ )
240+
241+ refute prompt . to_h . key? ( :arguments )
242+ end
243+
199244 test "#to_h does not have `:icons` key when icons is empty" do
200245 prompt = Prompt . define (
201246 name : "prompt_without_icons" ,
0 commit comments