(t *testing.T)
| 16 | ) |
| 17 | |
| 18 | func TestStoreAgentName(t *testing.T) { |
| 19 | t.Parallel() |
| 20 | |
| 21 | tempDB := filepath.Join(t.TempDir(), "test_store.db") |
| 22 | |
| 23 | store, err := NewSQLiteSessionStore(t.Context(), tempDB) |
| 24 | require.NoError(t, err) |
| 25 | defer store.(*SQLiteSessionStore).Close() |
| 26 | |
| 27 | testAgent1 := agent.New("test-agent-1", "test prompt 1") |
| 28 | testAgent2 := agent.New("test-agent-2", "test prompt 2") |
| 29 | |
| 30 | session := &Session{ |
| 31 | ID: "test-session", |
| 32 | Messages: []Item{ |
| 33 | NewMessageItem(UserMessage("Hello")), |
| 34 | NewMessageItem(NewAgentMessage(testAgent1.Name(), &chat.Message{ |
| 35 | Role: chat.MessageRoleAssistant, |
| 36 | Content: "Hello from test-agent-1", |
| 37 | })), |
| 38 | NewMessageItem(NewAgentMessage(testAgent2.Name(), &chat.Message{ |
| 39 | Role: chat.MessageRoleUser, |
| 40 | Content: "Another message from test-agent-2", |
| 41 | })), |
| 42 | }, |
| 43 | InputTokens: 100, |
| 44 | OutputTokens: 200, |
| 45 | CreatedAt: time.Now(), |
| 46 | } |
| 47 | |
| 48 | // Store the session |
| 49 | err = store.AddSession(t.Context(), session) |
| 50 | require.NoError(t, err) |
| 51 | |
| 52 | // Retrieve the session |
| 53 | retrievedSession, err := store.GetSession(t.Context(), "test-session") |
| 54 | require.NoError(t, err) |
| 55 | require.NotNil(t, retrievedSession) |
| 56 | |
| 57 | assert.Len(t, retrievedSession.GetAllMessages(), 3) |
| 58 | |
| 59 | // First message should be user message with empty agent name |
| 60 | assert.Empty(t, retrievedSession.Messages[0].Message.AgentName) |
| 61 | assert.Equal(t, "Hello", retrievedSession.Messages[0].Message.Message.Content) |
| 62 | |
| 63 | // Second message should have the first agent's name |
| 64 | assert.Equal(t, "test-agent-1", retrievedSession.Messages[1].Message.AgentName) |
| 65 | assert.Equal(t, "Hello from test-agent-1", retrievedSession.Messages[1].Message.Message.Content) |
| 66 | |
| 67 | // Third message should have the second agent's name |
| 68 | assert.Equal(t, "test-agent-2", retrievedSession.Messages[2].Message.AgentName) |
| 69 | assert.Equal(t, "Another message from test-agent-2", retrievedSession.Messages[2].Message.Message.Content) |
| 70 | } |
| 71 | |
| 72 | func TestStoreMultipleAgents(t *testing.T) { |
| 73 | t.Parallel() |
nothing calls this directly
no test coverage detected