From d9005ebe03dc80ca790437f8fa25f15200756b44 Mon Sep 17 00:00:00 2001 From: olaservo Date: Wed, 19 Aug 2026 17:11:37 -0700 Subject: [PATCH] Cover the Ruby weather server in the smoke tests The server was excluded because the mcp gem did not stamp the resultType field that 2026-07-28 requires, so the test client rejected its responses. mcp 1.2.0 stamps it. Gemfile.lock is gitignored, so a fresh bundle install resolves the existing ">= 1.1.0" to 1.2.0 with no manifest change. Observed against the built test client: on 1.1.0 the run fails with "missing required resultType"; on 1.2.0 it connects and lists both tools. Co-Authored-By: Claude Opus 5 --- tests/smoke-test.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/tests/smoke-test.sh b/tests/smoke-test.sh index 7aee057..494c5d2 100755 --- a/tests/smoke-test.sh +++ b/tests/smoke-test.sh @@ -88,6 +88,15 @@ test_weather_server_go() { # and exits. Empty rather than unset: dotenv skips a name already present in # ENV, so a key in the environment or a local .env would start the chat loop. +# Test: Ruby weather server +test_weather_server_ruby() { + check_dependency ruby || return 1 + check_dependency bundle || return 1 + local server_dir="${PROJECT_ROOT}/weather-server-ruby" + ensure_bundled "${server_dir}" || return 1 + (cd "${server_dir}" && node "${TEST_CLIENT}" bundle exec ruby weather.rb) +} + # Test: Python MCP client test_mcp_client_python() { check_dependency uv || return 1 @@ -119,14 +128,13 @@ test_mcp_client_ruby() { # is present, so they cannot be driven without credentials. Making them start # credential-free is a change in their own directories, so their coverage lands # with those changes rather than here. -# -# Nor is the Ruby weather server: the mcp gem does not stamp the resultType -# field that 2026-07-28 requires, so the test client rejects its responses. + print_header "Running smoke tests" run_test "weather-server-python" test_weather_server_python run_test "weather-server-typescript" test_weather_server_typescript run_test "weather-server-rust" test_weather_server_rust run_test "weather-server-go" test_weather_server_go +run_test "weather-server-ruby" test_weather_server_ruby run_test "mcp-client-python" test_mcp_client_python run_test "mcp-client-typescript" test_mcp_client_typescript run_test "mcp-client-ruby" test_mcp_client_ruby