mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-11-11 14:48:14 +01:00
We rename this helper along the config types & helper types for it because the word "page" is used more often in the context of paging through results using an offset and limit whereas this helper is specifically used to split up the slice in queries of the form "WHERE x in []slice". We do this rename so that there is mimimal confusion in contexts where we use batching along with actual paging. The config struct is also renamed to QueryConfig in preparation for it holding more config options.
57 lines
1.4 KiB
Go
57 lines
1.4 KiB
Go
//go:build !test_db_postgres && test_db_sqlite
|
|
|
|
package graphdb
|
|
|
|
import (
|
|
"database/sql"
|
|
"testing"
|
|
|
|
"github.com/btcsuite/btcd/chaincfg"
|
|
"github.com/lightningnetwork/lnd/sqldb"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
// NewTestDB is a helper function that creates a SQLStore backed by a SQL
|
|
// database for testing.
|
|
func NewTestDB(t testing.TB) V1Store {
|
|
return NewTestDBWithFixture(t, nil)
|
|
}
|
|
|
|
// NewTestDBFixture is a no-op for the sqlite build.
|
|
func NewTestDBFixture(_ *testing.T) *sqldb.TestPgFixture {
|
|
return nil
|
|
}
|
|
|
|
// NewTestDBWithFixture is a helper function that creates a SQLStore backed by a
|
|
// SQL database for testing.
|
|
func NewTestDBWithFixture(t testing.TB, _ *sqldb.TestPgFixture) V1Store {
|
|
store, err := NewSQLStore(
|
|
&SQLStoreConfig{
|
|
ChainHash: *chaincfg.MainNetParams.GenesisHash,
|
|
QueryCfg: sqldb.DefaultQueryConfig(),
|
|
}, newBatchQuerier(t),
|
|
)
|
|
require.NoError(t, err)
|
|
return store
|
|
}
|
|
|
|
// newBatchQuerier creates a new BatchedSQLQueries instance for testing
|
|
// using a SQLite database.
|
|
func newBatchQuerier(t testing.TB) BatchedSQLQueries {
|
|
return newBatchQuerierWithFixture(t, nil)
|
|
}
|
|
|
|
// newBatchQuerierWithFixture creates a new BatchedSQLQueries instance for
|
|
// testing using a SQLite database.
|
|
func newBatchQuerierWithFixture(t testing.TB,
|
|
_ *sqldb.TestPgFixture) BatchedSQLQueries {
|
|
|
|
db := sqldb.NewTestSqliteDB(t).BaseDB
|
|
|
|
return sqldb.NewTransactionExecutor(
|
|
db, func(tx *sql.Tx) SQLQueries {
|
|
return db.WithTx(tx)
|
|
},
|
|
)
|
|
}
|