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  }