mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-12-03 17:40:02 +01:00
Copy over all the code that the graph SQL migration needs to a separate folder. This will let us advance the main graph SQL CRUD code without worrying about changing the sql migration code. It will also let us change the SQL queries without changing the migration. In this commit, only the migration logic is "frozen" but in an upcoming commit, the sqlc queries & models will be frozen too.
57 lines
1.4 KiB
Go
57 lines
1.4 KiB
Go
//go:build !test_db_postgres && test_db_sqlite
|
|
|
|
package migration1
|
|
|
|
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.DefaultSQLiteConfig(),
|
|
}, 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)
|
|
},
|
|
)
|
|
}
|