package historystore import ( "testing" "github.com/mariocandela/beelzebub/v3/plugins" "github.com/stretchr/testify/assert" ) func TestNewHistoryStore(t *testing.T) { hs := NewHistoryStore() assert.NotNil(t, hs) assert.NotNil(t, hs.sessions) } func TestHasKey(t *testing.T) { hs := NewHistoryStore() hs.sessions["testKey"] = []plugins.Message{} assert.True(t, hs.HasKey("testKey")) assert.False(t, hs.HasKey("nonExistentKey")) } func TestQuery(t *testing.T) { hs := NewHistoryStore() expectedMessages := []plugins.Message{{Role: "user", Content: "Hello"}} hs.sessions["testKey"] = expectedMessages actualMessages := hs.Query("testKey") assert.Equal(t, expectedMessages, actualMessages) } func TestAppend(t *testing.T) { hs := NewHistoryStore() message1 := plugins.Message{Role: "user", Content: "Hello"} message2 := plugins.Message{Role: "assistant", Content: "Hi"} hs.Append("testKey", message1) assert.Equal(t, []plugins.Message{message1}, hs.sessions["testKey"]) hs.Append("testKey", message2) assert.Equal(t, []plugins.Message{message1, message2}, hs.sessions["testKey"]) } func TestAppendNilSessions(t *testing.T) { hs := &HistoryStore{} message1 := plugins.Message{Role: "user", Content: "Hello"} hs.Append("testKey", message1) assert.NotNil(t, hs.sessions) assert.Equal(t, []plugins.Message{message1}, hs.sessions["testKey"]) }