[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/store/RFC.md fully. Find features d... #85
2 changed files with 38 additions and 0 deletions
14
store.go
14
store.go
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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:",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue