github.com/khulnasoft-lab/tunnel-db@v0.0.0-20231117205118-74e1113bd007/pkg/dbtest/init.go (about) 1 package dbtest 2 3 import ( 4 "os" 5 "path/filepath" 6 "testing" 7 8 "github.com/stretchr/testify/require" 9 10 fixtures "github.com/khulnasoft-lab/boltdb-fixtures" 11 "github.com/khulnasoft-lab/tunnel-db/pkg/db" 12 ) 13 14 func InitDB(t *testing.T, fixtureFiles []string) string { 15 t.Helper() 16 17 // Create a temp dir 18 dir := t.TempDir() 19 20 // Create the database dir 21 dbPath := db.Path(dir) 22 dbDir := filepath.Dir(dbPath) 23 err := os.MkdirAll(dbDir, 0700) 24 require.NoError(t, err) 25 26 // Load testdata into BoltDB 27 loader, err := fixtures.New(dbPath, fixtureFiles) 28 require.NoError(t, err) 29 require.NoError(t, loader.Load()) 30 require.NoError(t, loader.Close()) 31 32 // Initialize DB 33 require.NoError(t, db.Init(dir)) 34 35 return dir 36 }