Spaces:
Runtime error
Runtime error
const { addOpenAPISpecs, transformSpec } = require('./addOpenAPISpecs'); | |
const { loadSpecs } = require('./loadSpecs'); | |
const { createOpenAPIPlugin } = require('../dynamic/OpenAPIPlugin'); | |
jest.mock('./loadSpecs'); | |
jest.mock('../dynamic/OpenAPIPlugin'); | |
describe('transformSpec', () => { | |
it('should transform input spec to a desired format', () => { | |
const input = { | |
name_for_human: 'Human Name', | |
name_for_model: 'Model Name', | |
description_for_human: 'Human Description', | |
logo_url: 'https://example.com/logo.png', | |
}; | |
const expectedOutput = { | |
name: 'Human Name', | |
pluginKey: 'Model Name', | |
description: 'Human Description', | |
icon: 'https://example.com/logo.png', | |
isAuthRequired: 'false', | |
authConfig: [], | |
}; | |
expect(transformSpec(input)).toEqual(expectedOutput); | |
}); | |
it('should use default icon if logo_url is not provided', () => { | |
const input = { | |
name_for_human: 'Human Name', | |
name_for_model: 'Model Name', | |
description_for_human: 'Human Description', | |
}; | |
const expectedOutput = { | |
name: 'Human Name', | |
pluginKey: 'Model Name', | |
description: 'Human Description', | |
icon: 'https://placehold.co/70x70.png', | |
isAuthRequired: 'false', | |
authConfig: [], | |
}; | |
expect(transformSpec(input)).toEqual(expectedOutput); | |
}); | |
}); | |
describe('addOpenAPISpecs', () => { | |
it('should add specs to available tools', async () => { | |
const availableTools = ['Tool1', 'Tool2']; | |
const specs = [ | |
{ | |
name_for_human: 'Human Name', | |
name_for_model: 'Model Name', | |
description_for_human: 'Human Description', | |
logo_url: 'https://example.com/logo.png', | |
}, | |
]; | |
loadSpecs.mockResolvedValue(specs); | |
createOpenAPIPlugin.mockReturnValue('Plugin'); | |
const result = await addOpenAPISpecs(availableTools); | |
expect(result).toEqual([...specs.map(transformSpec), ...availableTools]); | |
}); | |
it('should return available tools if specs loading fails', async () => { | |
const availableTools = ['Tool1', 'Tool2']; | |
loadSpecs.mockRejectedValue(new Error('Failed to load specs')); | |
const result = await addOpenAPISpecs(availableTools); | |
expect(result).toEqual(availableTools); | |
}); | |
}); | |