Skip to main content
Glama
input.test.ts3 kB
import { describe, expect, it } from 'vitest'; import { processInput } from '../../src/input.js'; import type { Input } from '../../src/types.js'; describe('processInput', () => { it('should handle string actors input and convert to array', async () => { const input: Partial<Input> = { actors: 'actor1, actor2,actor3', }; const processed = processInput(input); expect(processed.actors).toEqual(['actor1', 'actor2', 'actor3']); }); it('should keep array actors input unchanged', async () => { const input: Partial<Input> = { actors: ['actor1', 'actor2', 'actor3'], }; const processed = processInput(input); expect(processed.actors).toEqual(['actor1', 'actor2', 'actor3']); }); it('should handle enableActorAutoLoading to set enableAddingActors', async () => { const input: Partial<Input> = { actors: ['actor1'], enableActorAutoLoading: true, }; const processed = processInput(input); expect(processed.enableAddingActors).toBe(true); }); it('should not override existing enableAddingActors with enableActorAutoLoading', async () => { const input: Partial<Input> = { actors: ['actor1'], enableActorAutoLoading: true, enableAddingActors: false, }; const processed = processInput(input); expect(processed.enableAddingActors).toBe(false); }); it('should default enableAddingActors to true when not provided', async () => { const input: Partial<Input> = { actors: ['actor1'], }; const processed = processInput(input); expect(processed.enableAddingActors).toBe(true); }); it('should keep tools as array of valid featureTools keys', async () => { const input: Partial<Input> = { actors: ['actor1'], tools: ['docs', 'runs'], }; const processed = processInput(input); expect(processed.tools).toEqual(['docs', 'runs']); }); it('should handle empty tools array', async () => { const input: Partial<Input> = { actors: ['actor1'], tools: [], }; const processed = processInput(input); expect(processed.tools).toEqual([]); }); it('should handle missing tools field (undefined)', async () => { const input: Partial<Input> = { actors: ['actor1'], }; const processed = processInput(input); expect(processed.tools).toBeUndefined(); }); it('should include all keys, even invalid ones', async () => { const input: Partial<Input> = { actors: ['actor1'], // @ts-expect-error: purposely invalid key for test tools: ['docs', 'invalidKey', 'storage'], }; const processed = processInput(input); expect(processed.tools).toEqual(['docs', 'invalidKey', 'storage']); }); });

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/jirispilka/actors-mcp-server'

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