Skip to main content
Glama
record-management-search.e2e.test.ts2.54 kB
/** * Split: Record Management E2E – Search slice */ import { describe, it, expect, beforeAll, afterAll, beforeEach, vi, } from 'vitest'; import { E2ETestBase } from '../setup.js'; import { E2EAssertions } from '../utils/assertions.js'; import { callUniversalTool, callTasksTool, validateTestEnvironment, getToolMigrationStats, } from '../utils/enhanced-tool-caller.js'; import { startTestSuite, endTestSuite } from '../utils/logger.js'; import type { McpToolResponse } from '../types/index.js'; function asToolResponse(response: unknown): McpToolResponse { return response as McpToolResponse; } const T30 = 30000, T45 = 45000, T60 = 60000; describe('Record Management E2E – Search', () => { beforeAll(async () => { startTestSuite('record-management-search'); const envValidation = await validateTestEnvironment(); if (!envValidation.valid) console.warn('⚠️ Test environment warnings:', envValidation.warnings); console.error('📊 Tool migration stats:', getToolMigrationStats()); await E2ETestBase.setup({ requiresRealApi: false, cleanupAfterTests: true, timeout: 120000, }); console.error('🚀 Starting Record Management E2E – Search'); }, T60); afterAll(async () => { endTestSuite(); console.error('✅ Record Management E2E – Search completed'); }, T60); beforeEach(() => { vi.clearAllMocks(); }); it( 'searches records across resource types', async () => { const resourceTypes = ['companies', 'people', 'tasks']; for (const resourceType of resourceTypes) { const response = asToolResponse( await callUniversalTool('search-records', { resource_type: resourceType as any, query: 'test', limit: 5, }) ); E2EAssertions.expectMcpSuccess(response); const results = E2EAssertions.expectMcpData(response); expect(results).toBeDefined(); console.error(`✅ Searched ${resourceType} records successfully`); } }, T45 ); it('filters tasks with pagination', async () => { const response = asToolResponse( await callTasksTool('search-records', { resource_type: 'tasks', query: 'test', limit: 10, offset: 0, }) ); E2EAssertions.expectMcpSuccess(response); const tasks = E2EAssertions.expectMcpData(response); expect(tasks).toBeDefined(); console.error('✅ Task filtering with pagination completed'); }, 45000); });

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/kesslerio/attio-mcp-server'

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