77 * This test suite validates the new functional API for Mastra integration.
88 */
99
10- import {
11- model ,
12- toolset ,
13- sandbox ,
14- codeInterpreter ,
15- browser ,
16- createMastraTool ,
17- } from '@/integration/mastra' ;
10+ import { createMastraTool , model , sandbox , toolset } from '@/integration/mastra' ;
1811import { TemplateType } from '@/sandbox' ;
1912import { Config } from '@/utils/config' ;
20- import type { LanguageModelV3 } from '@ai-sdk/provider' ;
2113import { z } from 'zod' ;
22- import type { ToolsInput } from '@mastra/core/agent' ;
2314
2415// Mock external dependencies
2516jest . mock ( '@/integration/builtin' ) ;
@@ -264,7 +255,7 @@ describe('Mastra Integration', () => {
264255 } ) ;
265256
266257 expect ( builtin . sandboxToolset ) . toHaveBeenCalledWith ( 'my-template' , {
267- templateType : TemplateType . CODE_INTERPRETER ,
258+ // templateType: TemplateType.CODE_INTERPRETER,
268259 sandboxIdleTimeoutSeconds : undefined ,
269260 config : undefined ,
270261 } ) ;
@@ -282,7 +273,7 @@ describe('Mastra Integration', () => {
282273 } ) ;
283274
284275 expect ( builtin . sandboxToolset ) . toHaveBeenCalledWith ( 'browser-template' , {
285- templateType : TemplateType . BROWSER ,
276+ // templateType: TemplateType.BROWSER,
286277 sandboxIdleTimeoutSeconds : undefined ,
287278 config : undefined ,
288279 } ) ;
@@ -327,111 +318,111 @@ describe('Mastra Integration', () => {
327318 } ) ;
328319 } ) ;
329320
330- describe ( 'codeInterpreter()' , ( ) => {
331- it ( 'should create CODE_INTERPRETER sandbox tools' , async ( ) => {
332- const mockSandboxToolSet = {
333- tools : jest . fn ( ) . mockReturnValue ( [ ] ) ,
334- } ;
335-
336- ( builtin . sandboxToolset as jest . Mock ) . mockResolvedValue ( mockSandboxToolSet ) ;
337-
338- await codeInterpreter ( {
339- templateName : 'code-template' ,
340- } ) ;
341-
342- expect ( builtin . sandboxToolset ) . toHaveBeenCalledWith ( 'code-template' , {
343- templateType : TemplateType . CODE_INTERPRETER ,
344- sandboxIdleTimeoutSeconds : undefined ,
345- config : undefined ,
346- } ) ;
347- } ) ;
348-
349- it ( 'should be shorthand for sandbox()' , async ( ) => {
350- const mockSandboxToolSet = {
351- tools : jest . fn ( ) . mockReturnValue ( [ ] ) ,
352- } ;
353-
354- ( builtin . sandboxToolset as jest . Mock ) . mockResolvedValue ( mockSandboxToolSet ) ;
355-
356- await codeInterpreter ( {
357- templateName : 'test-template' ,
358- sandboxIdleTimeoutSeconds : 300 ,
359- config : mockConfig ,
360- } ) ;
361-
362- await sandbox ( {
363- templateName : 'test-template' ,
364- sandboxIdleTimeoutSeconds : 300 ,
365- config : mockConfig ,
366- } ) ;
367-
368- // Should call with same parameters
369- expect ( builtin . sandboxToolset ) . toHaveBeenCalledTimes ( 2 ) ;
370- expect ( builtin . sandboxToolset ) . toHaveBeenNthCalledWith ( 1 , 'test-template' , {
371- templateType : TemplateType . CODE_INTERPRETER ,
372- sandboxIdleTimeoutSeconds : 300 ,
373- config : mockConfig ,
374- } ) ;
375- expect ( builtin . sandboxToolset ) . toHaveBeenNthCalledWith ( 2 , 'test-template' , {
376- templateType : TemplateType . CODE_INTERPRETER ,
377- sandboxIdleTimeoutSeconds : 300 ,
378- config : mockConfig ,
379- } ) ;
380- } ) ;
381- } ) ;
382-
383- describe ( 'browser()' , ( ) => {
384- it ( 'should create BROWSER sandbox tools' , async ( ) => {
385- const mockSandboxToolSet = {
386- tools : jest . fn ( ) . mockReturnValue ( [ ] ) ,
387- } ;
388-
389- ( builtin . sandboxToolset as jest . Mock ) . mockResolvedValue ( mockSandboxToolSet ) ;
390-
391- await browser ( {
392- templateName : 'browser-template' ,
393- } ) ;
394-
395- expect ( builtin . sandboxToolset ) . toHaveBeenCalledWith ( 'browser-template' , {
396- templateType : TemplateType . BROWSER ,
397- sandboxIdleTimeoutSeconds : undefined ,
398- config : undefined ,
399- } ) ;
400- } ) ;
401-
402- it ( 'should be shorthand for sandbox()' , async ( ) => {
403- const mockSandboxToolSet = {
404- tools : jest . fn ( ) . mockReturnValue ( [ ] ) ,
405- } ;
406-
407- ( builtin . sandboxToolset as jest . Mock ) . mockResolvedValue ( mockSandboxToolSet ) ;
408-
409- await browser ( {
410- templateName : 'test-browser' ,
411- sandboxIdleTimeoutSeconds : 300 ,
412- config : mockConfig ,
413- } ) ;
414-
415- await sandbox ( {
416- templateName : 'test-browser' ,
417- sandboxIdleTimeoutSeconds : 300 ,
418- config : mockConfig ,
419- } ) ;
420-
421- // Should call with same parameters
422- expect ( builtin . sandboxToolset ) . toHaveBeenCalledTimes ( 2 ) ;
423- expect ( builtin . sandboxToolset ) . toHaveBeenNthCalledWith ( 1 , 'test-browser' , {
424- templateType : TemplateType . BROWSER ,
425- sandboxIdleTimeoutSeconds : 300 ,
426- config : mockConfig ,
427- } ) ;
428- expect ( builtin . sandboxToolset ) . toHaveBeenNthCalledWith ( 2 , 'test-browser' , {
429- templateType : TemplateType . BROWSER ,
430- sandboxIdleTimeoutSeconds : 300 ,
431- config : mockConfig ,
432- } ) ;
433- } ) ;
434- } ) ;
321+ // describe('codeInterpreter()', () => {
322+ // it('should create CODE_INTERPRETER sandbox tools', async () => {
323+ // const mockSandboxToolSet = {
324+ // tools: jest.fn().mockReturnValue([]),
325+ // };
326+
327+ // (builtin.sandboxToolset as jest.Mock).mockResolvedValue(mockSandboxToolSet);
328+
329+ // await codeInterpreter({
330+ // templateName: 'code-template',
331+ // });
332+
333+ // expect(builtin.sandboxToolset).toHaveBeenCalledWith('code-template', {
334+ // templateType: TemplateType.CODE_INTERPRETER,
335+ // sandboxIdleTimeoutSeconds: undefined,
336+ // config: undefined,
337+ // });
338+ // });
339+
340+ // it('should be shorthand for sandbox()', async () => {
341+ // const mockSandboxToolSet = {
342+ // tools: jest.fn().mockReturnValue([]),
343+ // };
344+
345+ // (builtin.sandboxToolset as jest.Mock).mockResolvedValue(mockSandboxToolSet);
346+
347+ // await codeInterpreter({
348+ // templateName: 'test-template',
349+ // sandboxIdleTimeoutSeconds: 300,
350+ // config: mockConfig,
351+ // });
352+
353+ // await sandbox({
354+ // templateName: 'test-template',
355+ // sandboxIdleTimeoutSeconds: 300,
356+ // config: mockConfig,
357+ // });
358+
359+ // // Should call with same parameters
360+ // expect(builtin.sandboxToolset).toHaveBeenCalledTimes(2);
361+ // expect(builtin.sandboxToolset).toHaveBeenNthCalledWith(1, 'test-template', {
362+ // templateType: TemplateType.CODE_INTERPRETER,
363+ // sandboxIdleTimeoutSeconds: 300,
364+ // config: mockConfig,
365+ // });
366+ // expect(builtin.sandboxToolset).toHaveBeenNthCalledWith(2, 'test-template', {
367+ // templateType: TemplateType.CODE_INTERPRETER,
368+ // sandboxIdleTimeoutSeconds: 300,
369+ // config: mockConfig,
370+ // });
371+ // });
372+ // });
373+
374+ // describe('browser()', () => {
375+ // it('should create BROWSER sandbox tools', async () => {
376+ // const mockSandboxToolSet = {
377+ // tools: jest.fn().mockReturnValue([]),
378+ // };
379+
380+ // (builtin.sandboxToolset as jest.Mock).mockResolvedValue(mockSandboxToolSet);
381+
382+ // await browser({
383+ // templateName: 'browser-template',
384+ // });
385+
386+ // expect(builtin.sandboxToolset).toHaveBeenCalledWith('browser-template', {
387+ // templateType: TemplateType.BROWSER,
388+ // sandboxIdleTimeoutSeconds: undefined,
389+ // config: undefined,
390+ // });
391+ // });
392+
393+ // it('should be shorthand for sandbox()', async () => {
394+ // const mockSandboxToolSet = {
395+ // tools: jest.fn().mockReturnValue([]),
396+ // };
397+
398+ // (builtin.sandboxToolset as jest.Mock).mockResolvedValue(mockSandboxToolSet);
399+
400+ // await browser({
401+ // templateName: 'test-browser',
402+ // sandboxIdleTimeoutSeconds: 300,
403+ // config: mockConfig,
404+ // });
405+
406+ // await sandbox({
407+ // templateName: 'test-browser',
408+ // sandboxIdleTimeoutSeconds: 300,
409+ // config: mockConfig,
410+ // });
411+
412+ // // Should call with same parameters
413+ // expect(builtin.sandboxToolset).toHaveBeenCalledTimes(2);
414+ // expect(builtin.sandboxToolset).toHaveBeenNthCalledWith(1, 'test-browser', {
415+ // templateType: TemplateType.BROWSER,
416+ // sandboxIdleTimeoutSeconds: 300,
417+ // config: mockConfig,
418+ // });
419+ // expect(builtin.sandboxToolset).toHaveBeenNthCalledWith(2, 'test-browser', {
420+ // templateType: TemplateType.BROWSER,
421+ // sandboxIdleTimeoutSeconds: 300,
422+ // config: mockConfig,
423+ // });
424+ // });
425+ // });
435426
436427 describe ( 'createMastraTool()' , ( ) => {
437428 it ( 'should create Mastra tool from definition' , async ( ) => {
@@ -515,20 +506,20 @@ describe('Mastra Integration', () => {
515506 // Create all components
516507 const llm = await model ( { name : 'qwen-max' } ) ;
517508 const tools = await toolset ( { name : 'weather-toolset' } ) ;
518- const sandboxTools = await codeInterpreter ( {
519- templateName : 'python-sandbox' ,
520- } ) ;
509+ // const sandboxTools = await codeInterpreter({
510+ // templateName: 'python-sandbox',
511+ // });
521512
522513 // Verify all components are created
523514 expect ( llm ) . toBeDefined ( ) ;
524515 expect ( tools ) . toBeDefined ( ) ;
525516 expect ( tools . weatherTool ) . toBeDefined ( ) ;
526- expect ( sandboxTools ) . toBeDefined ( ) ;
527- expect ( sandboxTools . executeCode ) . toBeDefined ( ) ;
517+ // expect(sandboxTools).toBeDefined();
518+ // expect(sandboxTools.executeCode).toBeDefined();
528519
529520 // Verify component structure
530521 expect ( typeof tools ) . toBe ( 'object' ) ;
531- expect ( typeof sandboxTools ) . toBe ( 'object' ) ;
522+ // expect(typeof sandboxTools).toBe('object');
532523 } ) ;
533524 } ) ;
534525} ) ;
0 commit comments