/** * Test utilities and helpers */ import { mkdtempSync, rmSync, existsSync } from "fs"; import { join } from "path"; import { tmpdir } from "os"; export interface TestContext { tempDir: string; cleanup: () => void; } /** * Create a temporary directory for testing */ export function createTempDir(prefix = "mcp-test-"): TestContext { const tempDir = mkdtempSync(join(tmpdir(), prefix)); return { tempDir, cleanup: () => { if (existsSync(tempDir)) { rmSync(tempDir, { recursive: true, force: true }); } }, }; } /** * Set test environment variables */ export function setTestEnv(env: Record): () => void { const originalEnv: Record = {}; for (const [key, value] of Object.entries(env)) { originalEnv[key] = process.env[key]; process.env[key] = value; } return () => { for (const [key, originalValue] of Object.entries(originalEnv)) { if (originalValue === undefined) { delete process.env[key]; } else { process.env[key] = originalValue; } } }; } /** * Wait for a specified time (for async operations) */ export function sleep(ms: number): Promise { return new Promise((resolve) => setTimeout(resolve, ms)); } /** * Mock HTTP response helper */ export function createMockResponse(data: unknown, status = 200) { return { status, data, headers: {}, }; }