Files
2026-08-14 23:41:57 +08:00

54 lines
1.6 KiB
Go

package memstatus
import (
"bytes"
"os"
"path/filepath"
"strings"
"testing"
"github.com/smallnest/pigo/internal/agentcore"
"github.com/smallnest/pigo/internal/memory"
)
// TestRunMemoryDisabled renders the disabled state when the store is nil and
// still prints the context and checkpoint sections.
func TestRunMemoryDisabled(t *testing.T) {
var buf bytes.Buffer
RunMemory(&buf, nil, "", "", nil, 0)
out := buf.String()
for _, want := range []string{"persistent memory:", "disabled", "context:", "checkpoint:"} {
if !strings.Contains(out, want) {
t.Fatalf("output missing %q:\n%s", want, out)
}
}
}
// TestRunMemoryEnabledCounts reconciles a store with entries and asserts the
// report shows enabled status and per-scope counts.
func TestRunMemoryEnabledCounts(t *testing.T) {
base := t.TempDir()
root := filepath.Join(base, "mem")
if err := os.MkdirAll(filepath.Join(root, "global", "reference"), 0o755); err != nil {
t.Fatalf("mkdir: %v", err)
}
if err := os.WriteFile(filepath.Join(root, "global", "reference", "a.md"), []byte("hello"), 0o644); err != nil {
t.Fatalf("write: %v", err)
}
st, err := memory.Open(filepath.Join(base, "index.db"), root, "")
if err != nil {
t.Fatalf("Open: %v", err)
}
defer st.Close()
var buf bytes.Buffer
msgs := agentcore.MessageList{agentcore.UserMessage{Content: agentcore.ContentList{agentcore.NewTextContent("hi")}}}
RunMemory(&buf, st, root, "sess-1", msgs, 200000)
out := buf.String()
for _, want := range []string{"enabled", "entries:", "global:", "context:", "checkpoint:", "none yet"} {
if !strings.Contains(out, want) {
t.Fatalf("output missing %q:\n%s", want, out)
}
}
}