MCPcopy Create free account
hub / github.com/astercloud/aster / TestRecordMemory

Function TestRecordMemory

pkg/memory/logic/manager_test.go:52–124  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

50}
51
52func TestRecordMemory(t *testing.T) {
53 ctx := context.Background()
54 store := NewInMemoryStore()
55 manager, err := NewManager(&ManagerConfig{Store: store})
56 require.NoError(t, err)
57
58 t.Run("create new memory", func(t *testing.T) {
59 mem := &LogicMemory{
60 Namespace: "user:123",
61 Scope: ScopeUser,
62 Type: "preference",
63 Key: "tone",
64 Value: "casual",
65 Description: "User prefers casual tone",
66 Provenance: &memory.MemoryProvenance{
67 SourceType: memory.SourceUserInput,
68 Confidence: 0.7,
69 },
70 }
71
72 err := manager.RecordMemory(ctx, mem)
73 require.NoError(t, err)
74
75 // 验证 ID 已设置
76 assert.NotEmpty(t, mem.ID)
77
78 // 验证存储成功
79 retrieved, err := store.Get(ctx, "user:123", "tone")
80 require.NoError(t, err)
81 assert.Equal(t, "casual", retrieved.Value)
82 assert.Equal(t, "User prefers casual tone", retrieved.Description)
83 })
84
85 t.Run("update existing memory", func(t *testing.T) {
86 // 创建初始 Memory
87 mem1 := &LogicMemory{
88 Namespace: "user:456",
89 Scope: ScopeUser,
90 Type: "preference",
91 Key: "style",
92 Value: "formal",
93 Description: "User prefers formal style",
94 Provenance: &memory.MemoryProvenance{
95 SourceType: memory.SourceUserInput,
96 Confidence: 0.6,
97 },
98 }
99 err := manager.RecordMemory(ctx, mem1)
100 require.NoError(t, err)
101
102 // 更新 Memory(相同 namespace + key)
103 mem2 := &LogicMemory{
104 Namespace: "user:456",
105 Scope: ScopeUser,
106 Type: "preference",
107 Key: "style",
108 Value: "casual",
109 Description: "User changed to casual style",

Callers

nothing calls this directly

Calls 5

RecordMemoryMethod · 0.95
GetMethod · 0.95
NewInMemoryStoreFunction · 0.70
NewManagerFunction · 0.70
RunMethod · 0.45

Tested by

no test coverage detected