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

Function TestDatabasePersistence

pkg/session/sqlite/store_test.go:359–403  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

357}
358
359func TestDatabasePersistence(t *testing.T) {
360 tmpDir := t.TempDir()
361 dbPath := filepath.Join(tmpDir, "persist.db")
362 ctx := context.Background()
363
364 // Create and populate
365 svc1, _ := New(dbPath)
366 sess, _ := svc1.Create(ctx, &session.CreateRequest{
367 AppName: "persist-app",
368 UserID: "user-1",
369 AgentID: "agent-1",
370 })
371 sessionID := sess.ID()
372
373 _ = svc1.AppendEvent(ctx, sessionID, &session.Event{
374 InvocationID: "inv-1",
375 Author: "user",
376 Content: types.Message{
377 Role: types.RoleUser,
378 Content: "Persisted message",
379 },
380 })
381 _ = svc1.Close()
382
383 // Reopen and verify
384 svc2, _ := New(dbPath)
385 defer func() { _ = svc2.Close() }()
386
387 sess2, err := svc2.Get(ctx, &session.GetRequest{
388 AppName: "persist-app",
389 UserID: "user-1",
390 SessionID: sessionID,
391 })
392 if err != nil {
393 t.Fatalf("Session should persist: %v", err)
394 }
395
396 events, _ := svc2.GetEvents(ctx, sess2.ID(), nil)
397 if len(events) == 0 {
398 t.Error("Events should persist")
399 }
400 if events[0].Content.Content != "Persisted message" {
401 t.Error("Event content should persist")
402 }
403}
404
405func TestEventFiltering(t *testing.T) {
406 tmpDir := t.TempDir()

Callers

nothing calls this directly

Calls 9

NewFunction · 0.70
CreateMethod · 0.65
IDMethod · 0.65
AppendEventMethod · 0.65
CloseMethod · 0.65
GetMethod · 0.65
GetEventsMethod · 0.65
ErrorMethod · 0.65
JoinMethod · 0.45

Tested by

no test coverage detected