@@ -121,6 +121,8 @@ describe('converToMcpToolTriggerOptionsToRpc', () => {
121121 booleanProp : arg . boolean ( ) . describe ( 'A boolean property' ) ,
122122 objectProp : arg . object ( ) . describe ( 'An object property' ) . optional ( ) ,
123123 integerProp : arg . integer ( ) . describe ( 'An integer property' ) ,
124+ longProp : arg . long ( ) . describe ( 'A long property' ) ,
125+ doubleProp : arg . double ( ) . describe ( 'A double property' ) . optional ( ) ,
124126 } ;
125127
126128 const input : McpToolTriggerOptions = {
@@ -135,13 +137,26 @@ describe('converToMcpToolTriggerOptionsToRpc', () => {
135137 expect ( ( ) => JSON . parse ( result . toolProperties || '' ) ) . to . not . throw ( ) ;
136138
137139 const parsedProperties = JSON . parse ( result . toolProperties || '[]' ) as McpToolProperty [ ] ;
138- expect ( parsedProperties ) . to . have . length ( 5 ) ;
140+ expect ( parsedProperties ) . to . have . length ( 7 ) ;
141+
142+ // Verify long and double properties are correctly converted
143+ const longProp = parsedProperties . find ( ( p ) => p . propertyName === 'longProp' ) ;
144+ expect ( longProp ?. propertyType ) . to . equal ( 'number' ) ;
145+ expect ( longProp ?. description ) . to . equal ( 'A long property' ) ;
146+ expect ( longProp ?. isRequired ) . to . equal ( true ) ;
147+
148+ const doubleProp = parsedProperties . find ( ( p ) => p . propertyName === 'doubleProp' ) ;
149+ expect ( doubleProp ?. propertyType ) . to . equal ( 'number' ) ;
150+ expect ( doubleProp ?. description ) . to . equal ( 'A double property' ) ;
151+ expect ( doubleProp ?. isRequired ) . to . equal ( false ) ;
139152 } ) ;
140153
141154 it ( 'should handle array properties correctly' , ( ) => {
142155 const toolProperties : Args = {
143156 stringArray : arg . string ( ) . describe ( 'A string array' ) . asArray ( ) . optional ( ) ,
144157 numberArray : arg . number ( ) . describe ( 'A number array' ) . asArray ( ) ,
158+ longArray : arg . long ( ) . describe ( 'A long array' ) . asArray ( ) ,
159+ doubleArray : arg . double ( ) . describe ( 'A double array' ) . asArray ( ) . optional ( ) ,
145160 } ;
146161
147162 const input : McpToolTriggerOptions = {
@@ -156,7 +171,71 @@ describe('converToMcpToolTriggerOptionsToRpc', () => {
156171 expect ( ( ) => JSON . parse ( result . toolProperties || '' ) ) . to . not . throw ( ) ;
157172
158173 const parsedProperties = JSON . parse ( result . toolProperties || '[]' ) as McpToolProperty [ ] ;
159- expect ( parsedProperties ) . to . have . length ( 2 ) ;
174+ expect ( parsedProperties ) . to . have . length ( 4 ) ;
175+
176+ // Verify long and double array properties
177+ const longArray = parsedProperties . find ( ( p ) => p . propertyName === 'longArray' ) ;
178+ expect ( longArray ?. propertyType ) . to . equal ( 'number' ) ;
179+ expect ( longArray ?. isArray ) . to . equal ( true ) ;
180+ expect ( longArray ?. isRequired ) . to . equal ( true ) ;
181+
182+ const doubleArray = parsedProperties . find ( ( p ) => p . propertyName === 'doubleArray' ) ;
183+ expect ( doubleArray ?. propertyType ) . to . equal ( 'number' ) ;
184+ expect ( doubleArray ?. isArray ) . to . equal ( true ) ;
185+ expect ( doubleArray ?. isRequired ) . to . equal ( false ) ;
186+ } ) ;
187+
188+ it ( 'should handle long and double property types specifically' , ( ) => {
189+ const toolProperties : Args = {
190+ longValue : arg . long ( ) . describe ( 'A long integer value' ) ,
191+ doubleValue : arg . double ( ) . describe ( 'A double precision value' ) . optional ( ) ,
192+ longArrayValue : arg . long ( ) . asArray ( ) . describe ( 'Array of long values' ) ,
193+ doubleArrayValue : arg . double ( ) . asArray ( ) . describe ( 'Array of double values' ) . optional ( ) ,
194+ } ;
195+
196+ const input : McpToolTriggerOptions = {
197+ toolName : 'long-double-tool' ,
198+ description : 'A tool testing long and double types' ,
199+ toolProperties : toolProperties ,
200+ } ;
201+
202+ const result = converToMcpToolTriggerOptionsToRpc ( input ) ;
203+
204+ expect ( result . toolProperties ) . to . be . a ( 'string' ) ;
205+ expect ( ( ) => JSON . parse ( result . toolProperties || '' ) ) . to . not . throw ( ) ;
206+
207+ const parsedProperties = JSON . parse ( result . toolProperties || '[]' ) as McpToolProperty [ ] ;
208+ expect ( parsedProperties ) . to . have . length ( 4 ) ;
209+
210+ // Test individual long property
211+ const longProp = parsedProperties . find ( ( p ) => p . propertyName === 'longValue' ) ;
212+ expect ( longProp ) . to . not . be . undefined ;
213+ expect ( longProp ?. propertyType ) . to . equal ( 'number' ) ;
214+ expect ( longProp ?. description ) . to . equal ( 'A long integer value' ) ;
215+ expect ( longProp ?. isRequired ) . to . equal ( true ) ;
216+ expect ( longProp ?. isArray ) . to . equal ( false ) ;
217+
218+ // Test individual double property
219+ const doubleProp = parsedProperties . find ( ( p ) => p . propertyName === 'doubleValue' ) ;
220+ expect ( doubleProp ) . to . not . be . undefined ;
221+ expect ( doubleProp ?. propertyType ) . to . equal ( 'number' ) ;
222+ expect ( doubleProp ?. description ) . to . equal ( 'A double precision value' ) ;
223+ expect ( doubleProp ?. isRequired ) . to . equal ( false ) ;
224+ expect ( doubleProp ?. isArray ) . to . equal ( false ) ;
225+
226+ // Test long array property
227+ const longArrayProp = parsedProperties . find ( ( p ) => p . propertyName === 'longArrayValue' ) ;
228+ expect ( longArrayProp ) . to . not . be . undefined ;
229+ expect ( longArrayProp ?. propertyType ) . to . equal ( 'number' ) ;
230+ expect ( longArrayProp ?. isArray ) . to . equal ( true ) ;
231+ expect ( longArrayProp ?. isRequired ) . to . equal ( true ) ;
232+
233+ // Test double array property
234+ const doubleArrayProp = parsedProperties . find ( ( p ) => p . propertyName === 'doubleArrayValue' ) ;
235+ expect ( doubleArrayProp ) . to . not . be . undefined ;
236+ expect ( doubleArrayProp ?. propertyType ) . to . equal ( 'number' ) ;
237+ expect ( doubleArrayProp ?. isArray ) . to . equal ( true ) ;
238+ expect ( doubleArrayProp ?. isRequired ) . to . equal ( false ) ;
160239 } ) ;
161240 } ) ;
162241
0 commit comments