Skip to main content
Glama
record-management-crud.e2e.test.ts2.49 kB
/** * Split: Record Management E2E – CRUD focus */ import { describe, it, expect, beforeAll, afterAll, beforeEach, vi, } from 'vitest'; import { E2ETestBase } from '../setup.js'; import { E2EAssertions } from '../utils/assertions.js'; import { CompanyFactory, PersonFactory } from '../fixtures/index.js'; import type { TestDataObject, McpToolResponse } from '../types/index.js'; import { callUniversalTool, validateTestEnvironment, getToolMigrationStats, } from '../utils/enhanced-tool-caller.js'; import { startTestSuite, endTestSuite } from '../utils/logger.js'; function asToolResponse(response: unknown): McpToolResponse { return response as McpToolResponse; } describe.skipIf( !process.env.ATTIO_API_KEY || process.env.SKIP_E2E_TESTS === 'true' )('Record Management E2E – CRUD', () => { const testCompaniesRecord: TestDataObject[] = []; const testPeopleRecord: TestDataObject[] = []; beforeAll(async () => { startTestSuite('record-management-crud'); 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 – CRUD'); }, 60000); afterAll(async () => { endTestSuite(); console.error('✅ Record Management E2E – CRUD completed'); }, 60000); beforeEach(() => { vi.clearAllMocks(); }); it('creates company and person records', async () => { const companyResponse = asToolResponse( await callUniversalTool('create-record', { resource_type: 'companies', record_data: CompanyFactory.create() as any, }) ); E2EAssertions.expectMcpSuccess(companyResponse); const company = E2EAssertions.expectMcpData(companyResponse)!; E2EAssertions.expectCompanyRecord(company); testCompaniesRecord.push(company); const personResponse = asToolResponse( await callUniversalTool('create-record', { resource_type: 'people', record_data: PersonFactory.create() as any, }) ); E2EAssertions.expectMcpSuccess(personResponse); const person = E2EAssertions.expectMcpData(personResponse)!; E2EAssertions.expectPersonRecord(person); testPeopleRecord.push(person); }, 60000); });

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