MCPcopy
hub / github.com/kagent-dev/kagent / TestMemoryHandler

Function TestMemoryHandler

go/core/internal/httpserver/handlers/memory_test.go:28–237  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

26}
27
28func TestMemoryHandler(t *testing.T) {
29 setupHandler := func(t *testing.T) (*handlers.MemoryHandler, *mockErrorResponseWriter) {
30 base := &handlers.Base{
31 DefaultModelConfig: types.NamespacedName{Namespace: "default", Name: "default"},
32 DatabaseService: setupTestDBClient(t),
33 Authorizer: &auth.NoopAuthorizer{},
34 }
35 handler := handlers.NewMemoryHandler(base)
36 responseRecorder := newMockErrorResponseWriter()
37 return handler, responseRecorder
38 }
39
40 t.Run("AddSession", func(t *testing.T) {
41 t.Run("Success", func(t *testing.T) {
42 handler, responseRecorder := setupHandler(t)
43
44 reqBody := handlers.AddSessionMemoryRequest{
45 AgentName: "test-agent",
46 UserID: "user123",
47 Content: "This is a test conversation",
48 Vector: makeVector(768, 0.1),
49 Metadata: json.RawMessage(`{"session_id": "session-abc"}`),
50 }
51
52 jsonBody, _ := json.Marshal(reqBody)
53 req := httptest.NewRequest("POST", "/api/memories/sessions", bytes.NewBuffer(jsonBody))
54 req = setUser(req, "test-user")
55 req.Header.Set("Content-Type", "application/json")
56
57 handler.AddSession(responseRecorder, req)
58
59 assert.Equal(t, http.StatusCreated, responseRecorder.Code)
60 var response map[string]string
61 require.NoError(t, json.Unmarshal(responseRecorder.Body.Bytes(), &response))
62 assert.Contains(t, response, "id")
63 })
64
65 t.Run("MissingFields", func(t *testing.T) {
66 handler, responseRecorder := setupHandler(t)
67
68 reqBody := handlers.AddSessionMemoryRequest{UserID: "user123", Vector: makeVector(768, 0.1)}
69 jsonBody, _ := json.Marshal(reqBody)
70 req := httptest.NewRequest("POST", "/api/memories/sessions", bytes.NewBuffer(jsonBody))
71 req = setUser(req, "test-user")
72
73 handler.AddSession(responseRecorder, req)
74
75 assert.Equal(t, http.StatusBadRequest, responseRecorder.Code)
76 })
77
78 t.Run("WrongVectorDimension", func(t *testing.T) {
79 handler, responseRecorder := setupHandler(t)
80
81 reqBody := handlers.AddSessionMemoryRequest{
82 AgentName: "test-agent",
83 UserID: "user123",
84 Vector: makeVector(16, 0.1), // not 768
85 }

Callers

nothing calls this directly

Calls 11

AddSessionMethod · 0.95
AddSessionBatchMethod · 0.95
SearchMethod · 0.95
ListMethod · 0.95
DeleteMethod · 0.95
setupTestDBClientFunction · 0.85
makeVectorFunction · 0.85
setUserFunction · 0.85
RunMethod · 0.45
SetMethod · 0.45

Tested by

no test coverage detected