@@ -174,4 +174,53 @@ describe('isArray property support', () => {
174174 expect ( doubleArrayProp ?. isArray ) . to . equal ( true ) ;
175175 expect ( doubleArrayProp ?. isRequired ) . to . equal ( false ) ;
176176 } ) ;
177+
178+ it ( 'convertToolProperties defaults undefined isRequired to true and isArray to false' , ( ) => {
179+ // Create a mock Args object with undefined optional properties
180+ const toolProps = {
181+ prop1 : {
182+ propertyName : '' ,
183+ propertyType : 'string' ,
184+ description : 'Test property 1' ,
185+ isRequired : undefined ,
186+ isArray : undefined ,
187+ } ,
188+ prop2 : {
189+ propertyName : '' ,
190+ propertyType : 'number' ,
191+ description : 'Test property 2' ,
192+ isRequired : false ,
193+ isArray : true ,
194+ } ,
195+ prop3 : {
196+ propertyName : '' ,
197+ propertyType : 'boolean' ,
198+ description : 'Test property 3' ,
199+ isRequired : true ,
200+ isArray : false ,
201+ } ,
202+ } ;
203+
204+ const converted = convertToolProperties ( toolProps as any ) ;
205+
206+ expect ( converted ) . to . have . lengthOf ( 3 ) ;
207+
208+ // prop1 with undefined should default to required=true, array=false
209+ const prop1 = converted . find ( ( p ) => p . propertyName === 'prop1' ) ;
210+ expect ( prop1 ?. isRequired ) . to . equal ( true ) ;
211+ expect ( prop1 ?. isArray ) . to . equal ( false ) ;
212+ expect ( prop1 ?. propertyType ) . to . equal ( 'string' ) ;
213+
214+ // prop2 with explicit false/true should be preserved
215+ const prop2 = converted . find ( ( p ) => p . propertyName === 'prop2' ) ;
216+ expect ( prop2 ?. isRequired ) . to . equal ( false ) ;
217+ expect ( prop2 ?. isArray ) . to . equal ( true ) ;
218+ expect ( prop2 ?. propertyType ) . to . equal ( 'number' ) ;
219+
220+ // prop3 with explicit true/false should be preserved
221+ const prop3 = converted . find ( ( p ) => p . propertyName === 'prop3' ) ;
222+ expect ( prop3 ?. isRequired ) . to . equal ( true ) ;
223+ expect ( prop3 ?. isArray ) . to . equal ( false ) ;
224+ expect ( prop3 ?. propertyType ) . to . equal ( 'boolean' ) ;
225+ } ) ;
177226} ) ;
0 commit comments