Skip to main content
Glama

Frontend Test Generation & Code Review MCP Server

write-test-file.ts1.78 kB
import { writeFileSync, mkdirSync } from 'node:fs'; import { dirname } from 'node:path'; import { logger } from '../utils/logger.js'; export interface WriteTestFileInput { filePath: string; content: string; overwrite?: boolean; } export interface WriteTestFileOutput { success: boolean; filePath: string; error?: string; } export class WriteTestFileTool { async write(input: WriteTestFileInput): Promise<WriteTestFileOutput> { const { filePath, content, overwrite = false } = input; try { // 确保目录存在 const dir = dirname(filePath); mkdirSync(dir, { recursive: true }); // 检查文件是否已存在 if (!overwrite) { try { const fs = await import('node:fs'); await fs.promises.access(filePath); logger.warn(`File ${filePath} already exists, skipping write (overwrite=false)`); return { success: false, filePath, error: 'File already exists. Set overwrite=true to replace it.', }; } catch { // 文件不存在,继续写入 } } // 写入文件 writeFileSync(filePath, content, 'utf-8'); logger.info(`Successfully wrote test file: ${filePath}`); return { success: true, filePath, }; } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); logger.error(`Failed to write test file: ${filePath}`, { error: errorMessage }); return { success: false, filePath, error: errorMessage, }; } } async writeMultiple(inputs: WriteTestFileInput[]): Promise<WriteTestFileOutput[]> { return Promise.all(inputs.map(input => this.write(input))); } }

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/NorthSeacoder/fe-testgen-mcp'

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