MCPcopy Index your code
hub / github.com/docker/docker-agent / TestAddError_SQLiteRoundTrip

Function TestAddError_SQLiteRoundTrip

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

Source from the content-addressed store, hash-verified

897}
898
899func TestAddError_SQLiteRoundTrip(t *testing.T) {
900 t.Parallel()
901
902 tempDB := filepath.Join(t.TempDir(), "test_add_error.db")
903
904 store, err := NewSQLiteSessionStore(t.Context(), tempDB)
905 require.NoError(t, err)
906 defer store.(*SQLiteSessionStore).Close()
907
908 session := &Session{ID: "error-session", CreatedAt: time.Now()}
909 require.NoError(t, store.AddSession(t.Context(), session))
910
911 _, err = store.AddMessage(t.Context(), "error-session", UserMessage("do something"))
912 require.NoError(t, err)
913
914 err = store.AddError(t.Context(), "error-session", &Error{
915 Message: "model stream failed",
916 Code: "model_error",
917 AgentName: "root",
918 CreatedAt: time.Now().UTC().Format(time.RFC3339),
919 })
920 require.NoError(t, err)
921
922 retrieved, err := store.GetSession(t.Context(), "error-session")
923 require.NoError(t, err)
924 require.Len(t, retrieved.Messages, 2)
925
926 errItem := retrieved.Messages[1]
927 require.True(t, errItem.IsError())
928 assert.Equal(t, "model stream failed", errItem.Error.Message)
929 assert.Equal(t, "model_error", errItem.Error.Code)
930 assert.Equal(t, "root", errItem.Error.AgentName)
931
932 // Errors are not conversation messages, so GetAllMessages skips them.
933 assert.Len(t, retrieved.GetAllMessages(), 1)
934}
935
936func TestAddError_InMemoryRoundTrip(t *testing.T) {
937 t.Parallel()

Callers

nothing calls this directly

Calls 12

AddSessionMethod · 0.95
AddMessageMethod · 0.95
AddErrorMethod · 0.95
GetSessionMethod · 0.95
NewSQLiteSessionStoreFunction · 0.85
ContextMethod · 0.80
NowMethod · 0.80
IsErrorMethod · 0.80
GetAllMessagesMethod · 0.80
UserMessageFunction · 0.70
CloseMethod · 0.65
LenMethod · 0.65

Tested by

no test coverage detected