From acf5f50af9e3e30fb56be38f428b9436b77f6926 Mon Sep 17 00:00:00 2001 From: Jeremy Lewi Date: Fri, 20 Sep 2024 16:03:04 -0700 Subject: [PATCH] Fix bug in test. --- app/pkg/analyze/session_builder_test.go | 11 ++++++++++- app/pkg/application/app.go | 9 ++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/pkg/analyze/session_builder_test.go b/app/pkg/analyze/session_builder_test.go index 59c53769..e6b7f1fd 100644 --- a/app/pkg/analyze/session_builder_test.go +++ b/app/pkg/analyze/session_builder_test.go @@ -3,6 +3,8 @@ package analyze import ( "context" "database/sql" + "os" + "path/filepath" "testing" "time" @@ -40,7 +42,14 @@ func setup() (testTuple, error) { return testTuple{}, errors.Wrapf(err, "failed to create config") } - db, err := sql.Open(SQLLiteDriver, cfg.GetSessionsDB()) + // If the directory doesn't exit opening the SQLLite database will fail. + sessionsDBFile := cfg.GetSessionsDB() + dbDir := filepath.Dir(sessionsDBFile) + if err := os.MkdirAll(dbDir, 0755); err != nil { + return testTuple{}, errors.Wrapf(err, "Failed to create directory: %v", dbDir) + } + + db, err := sql.Open(SQLLiteDriver, sessionsDBFile) if err != nil { return testTuple{}, errors.Wrapf(err, "Failed to open database") } diff --git a/app/pkg/application/app.go b/app/pkg/application/app.go index af420ae7..63b5049c 100644 --- a/app/pkg/application/app.go +++ b/app/pkg/application/app.go @@ -4,6 +4,7 @@ import ( "context" "database/sql" "fmt" + "github.com/jlewi/monogo/helpers" "io" "net/http" "os" @@ -380,7 +381,13 @@ func (a *App) SetupAnalyzer() (*analyze.Analyzer, error) { return nil, errors.New("Config is nil; call LoadConfig first") } - db, err := sql.Open(analyze.SQLLiteDriver, a.Config.GetSessionsDB()) + // If the directory doesn't exit opening the SQLLite database will fail. + sessionsDBFile := a.Config.GetSessionsDB() + dbDir := filepath.Dir(sessionsDBFile) + if err := os.MkdirAll(dbDir, helpers.UserGroupAllPerm); err != nil { + return nil, errors.Wrapf(err, "Failed to create directory: %v", dbDir) + } + db, err := sql.Open(analyze.SQLLiteDriver, sessionsDBFile) if err != nil { return nil, errors.Wrapf(err, "Failed to open database: %v", a.Config.GetSessionsDB())