mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2025-01-05 10:32:19 +00:00
48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
package db_config
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
"testing"
|
|
|
|
"github.com/ledgerwatch/erigon/cl/persistence/sql_migrations"
|
|
"github.com/stretchr/testify/require"
|
|
_ "modernc.org/sqlite"
|
|
)
|
|
|
|
func setupTestDB(t *testing.T) *sql.DB {
|
|
db, err := sql.Open("sqlite", ":memory:")
|
|
if err != nil {
|
|
t.Fatalf("Failed to open database: %v", err)
|
|
}
|
|
|
|
// Start a transaction for testing
|
|
tx, err := db.Begin()
|
|
if err != nil {
|
|
t.Fatalf("Failed to start transaction: %v", err)
|
|
}
|
|
defer tx.Rollback()
|
|
|
|
// Call ApplyMigrations with the test transaction
|
|
err = sql_migrations.ApplyMigrations(context.Background(), tx)
|
|
if err != nil {
|
|
t.Fatalf("ApplyMigrations failed: %v", err)
|
|
}
|
|
tx.Commit()
|
|
return db
|
|
}
|
|
|
|
func TestDBConfig(t *testing.T) {
|
|
db := setupTestDB(t)
|
|
defer db.Close()
|
|
|
|
tx, err := db.Begin()
|
|
require.NoError(t, err)
|
|
c := DatabaseConfiguration{PruneDepth: 69}
|
|
require.NoError(t, WriteConfigurationIfNotExist(context.Background(), tx, c))
|
|
cfg, err := ReadConfiguration(context.Background(), tx)
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, cfg, c)
|
|
}
|