# 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
39 lines
1 KiB
Kotlin
39 lines
1 KiB
Kotlin
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
|
|
|
|
plugins {
|
|
kotlin("jvm")
|
|
}
|
|
|
|
dependencies {
|
|
testImplementation(project(":kotlin-sdk"))
|
|
testImplementation(project(":test-utils"))
|
|
testImplementation(kotlin("test"))
|
|
testImplementation(libs.kotlin.logging)
|
|
testImplementation(libs.ktor.client.cio)
|
|
testImplementation(libs.ktor.server.cio)
|
|
testImplementation(libs.ktor.server.websockets)
|
|
testRuntimeOnly(libs.slf4j.simple)
|
|
}
|
|
|
|
tasks.test {
|
|
useJUnitPlatform()
|
|
|
|
testLogging {
|
|
events("passed", "skipped", "failed")
|
|
showStandardStreams = true
|
|
showExceptions = true
|
|
showCauses = true
|
|
showStackTraces = true
|
|
exceptionFormat = TestExceptionFormat.FULL
|
|
}
|
|
|
|
doFirst {
|
|
systemProperty("test.classpath", classpath.asPath)
|
|
|
|
println("\n" + "=".repeat(60))
|
|
println("MCP CONFORMANCE TESTS")
|
|
println("=".repeat(60))
|
|
println("These tests validate compliance with the MCP specification.")
|
|
println("=".repeat(60) + "\n")
|
|
}
|
|
}
|