MCPcopy
hub / github.com/docker/docker-agent / TestResolveSessionID_SQLite

Function TestResolveSessionID_SQLite

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

Source from the content-addressed store, hash-verified

1002}
1003
1004func TestResolveSessionID_SQLite(t *testing.T) {
1005 t.Parallel()
1006
1007 tempDB := filepath.Join(t.TempDir(), "test_resolve.db")
1008
1009 store, err := NewSQLiteSessionStore(t.Context(), tempDB)
1010 require.NoError(t, err)
1011 defer store.(*SQLiteSessionStore).Close()
1012
1013 // Create sessions with known timestamps
1014 baseTime := time.Now()
1015 sessions := []struct {
1016 id string
1017 createdAt time.Time
1018 }{
1019 {"oldest", baseTime.Add(-3 * time.Hour)},
1020 {"middle", baseTime.Add(-2 * time.Hour)},
1021 {"newest", baseTime.Add(-1 * time.Hour)},
1022 }
1023
1024 for _, s := range sessions {
1025 err := store.AddSession(t.Context(), &Session{
1026 ID: s.id,
1027 CreatedAt: s.createdAt,
1028 })
1029 require.NoError(t, err)
1030 }
1031
1032 t.Run("resolves -1 to newest session", func(t *testing.T) {
1033 id, err := ResolveSessionID(t.Context(), store, "-1")
1034 require.NoError(t, err)
1035 assert.Equal(t, "newest", id)
1036 })
1037
1038 t.Run("resolves -2 to middle session", func(t *testing.T) {
1039 id, err := ResolveSessionID(t.Context(), store, "-2")
1040 require.NoError(t, err)
1041 assert.Equal(t, "middle", id)
1042 })
1043
1044 t.Run("resolves -3 to oldest session", func(t *testing.T) {
1045 id, err := ResolveSessionID(t.Context(), store, "-3")
1046 require.NoError(t, err)
1047 assert.Equal(t, "oldest", id)
1048 })
1049
1050 t.Run("returns error for out of range offset", func(t *testing.T) {
1051 _, err := ResolveSessionID(t.Context(), store, "-4")
1052 require.Error(t, err)
1053 assert.Contains(t, err.Error(), "out of range")
1054 })
1055
1056 t.Run("returns non-relative ID unchanged", func(t *testing.T) {
1057 id, err := ResolveSessionID(t.Context(), store, "some-uuid")
1058 require.NoError(t, err)
1059 assert.Equal(t, "some-uuid", id)
1060 })
1061}

Callers

nothing calls this directly

Calls 9

AddSessionMethod · 0.95
NewSQLiteSessionStoreFunction · 0.85
ResolveSessionIDFunction · 0.85
ContextMethod · 0.80
NowMethod · 0.80
CloseMethod · 0.65
AddMethod · 0.65
RunMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected