summaryrefslogtreecommitdiff
path: root/internal/mcp/server_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/mcp/server_test.go')
-rw-r--r--internal/mcp/server_test.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/internal/mcp/server_test.go b/internal/mcp/server_test.go
index 0c767f2..0944f35 100644
--- a/internal/mcp/server_test.go
+++ b/internal/mcp/server_test.go
@@ -500,6 +500,28 @@ func TestServer_ReadMessage(t *testing.T) {
})
}
+func TestNegotiateProtocolVersion(t *testing.T) {
+ tests := []struct {
+ name string
+ client string
+ expected string
+ }{
+ {"echoes supported version", "2025-11-25", "2025-11-25"},
+ {"echoes older version", "2025-06-18", "2025-06-18"},
+ {"echoes oldest version", "2024-11-05", "2024-11-05"},
+ {"returns latest for unknown", "9999-01-01", LatestProtocolVersion},
+ {"returns latest for empty", "", LatestProtocolVersion},
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ got := negotiateProtocolVersion(tt.client)
+ if got != tt.expected {
+ t.Errorf("negotiateProtocolVersion(%q) = %q, want %q", tt.client, got, tt.expected)
+ }
+ })
+ }
+}
+
func TestServer_HandleInitialized(t *testing.T) {
store := &mockPromptStore{prompts: make(map[string]*promptstore.Prompt)}
server, _, _ := createTestServer(t, store)