diff --git a/store.go b/store.go index 912f549..df6e663 100644 --- a/store.go +++ b/store.go @@ -127,6 +127,14 @@ func (storeInstance *Store) JournalConfiguration() JournalConfiguration { } } +// Usage example: `if storeInstance.JournalConfigured() { fmt.Println("journal is enabled") }` +func (storeInstance *Store) JournalConfigured() bool { + if storeInstance == nil { + return false + } + return storeInstance.journalConfiguration != (journalConfiguration{}) +} + // Usage example: `config := storeInstance.Config(); fmt.Println(config.DatabasePath, config.PurgeInterval)` func (storeInstance *Store) Config() StoreConfig { if storeInstance == nil { diff --git a/store_test.go b/store_test.go index 2a02623..202d6e8 100644 --- a/store_test.go +++ b/store_test.go @@ -121,6 +121,21 @@ func TestStore_JournalConfiguration_Good(t *testing.T) { }, config) } +func TestStore_JournalConfigured_Good(t *testing.T) { + storeInstance, err := New(":memory:", WithJournal("http://127.0.0.1:8086", "core", "events")) + require.NoError(t, err) + defer storeInstance.Close() + + assert.True(t, storeInstance.JournalConfigured()) + assert.False(t, (*Store)(nil).JournalConfigured()) + + unconfiguredStore, err := New(":memory:") + require.NoError(t, err) + defer unconfiguredStore.Close() + + assert.False(t, unconfiguredStore.JournalConfigured()) +} + func TestStore_Config_Good(t *testing.T) { storeInstance, err := NewConfigured(StoreConfig{ DatabasePath: ":memory:", diff --git a/workspace.go b/workspace.go index 1f0dfcc..f23282b 100644 --- a/workspace.go +++ b/workspace.go @@ -475,24 +475,24 @@ func (storeInstance *Store) commitWorkspaceAggregate(workspaceName string, field func openWorkspaceDatabase(databasePath string) (*sql.DB, error) { workspaceDatabase, err := sql.Open("sqlite", databasePath) if err != nil { - return nil, err + return nil, core.E("store.openWorkspaceDatabase", "open workspace database", err) } workspaceDatabase.SetMaxOpenConns(1) if _, err := workspaceDatabase.Exec("PRAGMA journal_mode=WAL"); err != nil { workspaceDatabase.Close() - return nil, err + return nil, core.E("store.openWorkspaceDatabase", "set WAL journal mode", err) } if _, err := workspaceDatabase.Exec("PRAGMA busy_timeout=5000"); err != nil { workspaceDatabase.Close() - return nil, err + return nil, core.E("store.openWorkspaceDatabase", "set busy timeout", err) } if _, err := workspaceDatabase.Exec(createWorkspaceEntriesTableSQL); err != nil { workspaceDatabase.Close() - return nil, err + return nil, core.E("store.openWorkspaceDatabase", "create workspace entries table", err) } if _, err := workspaceDatabase.Exec(createWorkspaceEntriesViewSQL); err != nil { workspaceDatabase.Close() - return nil, err + return nil, core.E("store.openWorkspaceDatabase", "create workspace entries view", err) } return workspaceDatabase, nil }