refactor(test): add centralized TypeScript server factory for integration tests (#477)
# refactor(test): add centralized TypeScript server factory for integration tests - Create TypeScriptServer class for managing TypeScript MCP servers - Add dedicated typescript/ directory with server infrastructure - Refactor TsTestBase to use TypeScriptServer for stdio transport - Extract TypeScript test tools (greet, multi-greet, prompts, resources) - Use npx tsx for direct execution (better performance than npm run) - Install TypeScript dependencies automatically in test setup The TypeScriptServer factory provides: - startSse(port): Start SSE transport server - startStdio(): Start STDIO transport server - stop(): Graceful server shutdown - installDependencies(): npm install automation <!-- Provide a brief summary of your changes --> ## Motivation and Context To resurrect typescript tests ## How Has This Been Tested? Locally, CI ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes - [x] Bug fix (non-breaking change which fixes an issue) - [x] Test fix ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context #475
This commit is contained in:
parent
29d34b8e48
commit
658b370c87
1 changed files with 2848 additions and 1119 deletions
|
|
@ -20,11 +20,14 @@ public object TypeScriptRunner {
|
|||
public fun run(
|
||||
typescriptDir: File,
|
||||
scriptPath: String,
|
||||
arguments: List<String> = emptyList(),
|
||||
env: Map<String, String> = emptyMap(),
|
||||
redirectErrorStream: Boolean = false,
|
||||
logPrefix: String = "TS-RUNNER",
|
||||
): Process {
|
||||
val pb = ProcessBuilder("npx", "tsx", scriptPath)
|
||||
val command = mutableListOf("npx", "tsx", scriptPath)
|
||||
command.addAll(arguments)
|
||||
val pb = ProcessBuilder(command)
|
||||
pb.directory(typescriptDir)
|
||||
env.forEach { (k, v) -> pb.environment()[k] = v }
|
||||
pb.redirectErrorStream(redirectErrorStream)
|
||||
|
|
|
|||
Loading…
Reference in a new issue