[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/store/RFC.md fully. Find features d... #85

Merged
Virgil merged 1 commit from agent/read---spec-code-core-go-store-rfc-md-fu into dev 2026-04-03 08:46:01 +00:00
2 changed files with 38 additions and 0 deletions

View file

@ -61,6 +61,7 @@ type JournalConfiguration struct {
// Usage example: `storeInstance, err := store.New(":memory:")`
type Store struct {
database *sql.DB
databasePath string
purgeContext context.Context
cancelPurge context.CancelFunc
purgeWaitGroup sync.WaitGroup
@ -121,6 +122,18 @@ func (storeInstance *Store) JournalConfiguration() JournalConfiguration {
}
}
// Usage example: `config := storeInstance.Config(); fmt.Println(config.DatabasePath, config.PurgeInterval)`
func (storeInstance *Store) Config() StoreConfig {
if storeInstance == nil {
return StoreConfig{}
}
return StoreConfig{
DatabasePath: storeInstance.databasePath,
Journal: storeInstance.JournalConfiguration(),
PurgeInterval: storeInstance.purgeInterval,
}
}
// Usage example: `storeInstance, err := store.New(":memory:", store.WithPurgeInterval(20*time.Millisecond))`
func WithPurgeInterval(interval time.Duration) StoreOption {
return func(config *StoreConfig) {
@ -199,6 +212,7 @@ func openStore(operation, databasePath string) (*Store, error) {
purgeContext, cancel := context.WithCancel(context.Background())
return &Store{
database: sqliteDatabase,
databasePath: databasePath,
purgeContext: purgeContext,
cancelPurge: cancel,
purgeInterval: 60 * time.Second,

View file

@ -121,6 +121,30 @@ func TestStore_JournalConfiguration_Good(t *testing.T) {
}, config)
}
func TestStore_Config_Good(t *testing.T) {
storeInstance, err := NewConfigured(StoreConfig{
DatabasePath: ":memory:",
Journal: JournalConfiguration{
EndpointURL: "http://127.0.0.1:8086",
Organisation: "core",
BucketName: "events",
},
PurgeInterval: 20 * time.Millisecond,
})
require.NoError(t, err)
defer storeInstance.Close()
assert.Equal(t, StoreConfig{
DatabasePath: ":memory:",
Journal: JournalConfiguration{
EndpointURL: "http://127.0.0.1:8086",
Organisation: "core",
BucketName: "events",
},
PurgeInterval: 20 * time.Millisecond,
}, storeInstance.Config())
}
func TestStore_NewConfigured_Good(t *testing.T) {
storeInstance, err := NewConfigured(StoreConfig{
DatabasePath: ":memory:",