core/internal/adapter/adaptertest/sqlite.go

29 lines
742 B
Go

package adaptertest
import (
"database/sql"
"github.com/stretchr/testify/require"
"github.com/uptrace/bun"
"github.com/uptrace/bun/dialect/sqlitedialect"
"github.com/uptrace/bun/driver/sqliteshim"
)
// NewBunDBSQLite initializes a new instance of *bun.DB, which is ready for use (all required migrations are applied).
// Data is stored in memory (https://www.sqlite.org/inmemorydb.html).
func NewBunDBSQLite(tb TestingTB) *bun.DB {
sqlDB, err := sql.Open(sqliteshim.ShimName, "file::memory:")
require.NoError(tb, err)
sqlDB.SetMaxOpenConns(1)
sqlDB.SetMaxIdleConns(1)
sqlDB.SetConnMaxLifetime(0)
bunDB := bun.NewDB(sqlDB, sqlitedialect.New())
bunDB.AddQueryHook(newBunDebugHook())
runMigrations(tb, bunDB)
return bunDB
}