Skip to main content
Glama
utils.test.ts4.2 kB
import { extractParameter, extractParameters } from '../utils' jest.mock('../../utils/logger', () => ({ log: jest.fn(), })) describe('Tool Utils', function () { describe('extractParameter', function () { it('should extract a parameter when it exists', function () { // Arrange const parameters = { arguments: { param1: 'value1', param2: 'value2', }, } // Act const result = extractParameter(parameters, 'param1') // Assert expect(result).toBe('value1') }) it('should return the default value when parameter does not exist', function () { // Arrange const parameters = { arguments: { param2: 'value2', }, } const defaultValue = 'default-value' // Act const result = extractParameter(parameters, 'param1', defaultValue) // Assert expect(result).toBe(defaultValue) }) it('should return the default value when parameters.arguments is undefined', function () { // Arrange const parameters = {} as { arguments: Record<string, unknown> } const defaultValue = 'default-value' // Act const result = extractParameter(parameters, 'param1', defaultValue) // Assert expect(result).toBe(defaultValue) }) it('should return the default value when parameters is null', function () { // Arrange const parameters = null as unknown as { arguments: Record<string, unknown> } const defaultValue = 'default-value' // Act const result = extractParameter(parameters, 'param1', defaultValue) // Assert expect(result).toBe(defaultValue) }) it('should return undefined when parameter does not exist and no default is provided', function () { // Arrange const parameters = { arguments: { param2: 'value2', }, } // Act const result = extractParameter(parameters, 'param1') // Assert expect(result).toBeUndefined() }) }) describe('extractParameters', function () { it('should extract all parameters', function () { // Arrange const parameters = { arguments: { param1: 'value1', param2: 'value2', }, } // Act const result = extractParameters(parameters) // Assert expect(result).toEqual({ param1: 'value1', param2: 'value2', }) }) it('should combine parameters with defaults', function () { // Arrange const parameters = { arguments: { param1: 'value1', param2: 'value2', }, } const defaults = { param3: 'default3', param4: 'default4', } // Act const result = extractParameters(parameters, defaults) // Assert expect(result).toEqual({ param1: 'value1', param2: 'value2', param3: 'default3', param4: 'default4', }) }) it('should override defaults with actual parameters', function () { // Arrange const parameters = { arguments: { param1: 'value1', param3: 'override3', }, } const defaults = { param3: 'default3', param4: 'default4', } // Act const result = extractParameters(parameters, defaults) // Assert expect(result).toEqual({ param1: 'value1', param3: 'override3', param4: 'default4', }) }) it('should return defaults when parameters.arguments is undefined', function () { // Arrange const parameters = {} as { arguments: Record<string, unknown> } const defaults = { param3: 'default3', param4: 'default4', } // Act const result = extractParameters(parameters, defaults) // Assert expect(result).toEqual(defaults) }) it('should return empty object when parameters.arguments is undefined and no defaults', function () { // Arrange const parameters = {} as { arguments: Record<string, unknown> } // Act const result = extractParameters(parameters) // Assert expect(result).toEqual({}) }) it('should return defaults when parameters is null', function () { // Arrange const parameters = null as unknown as { arguments: Record<string, unknown> } const defaults = { param3: 'default3', param4: 'default4', } // Act const result = extractParameters(parameters, defaults) // Assert expect(result).toEqual(defaults) }) }) })

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tbreeding/jira-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server