Skip to content

Commit 51d864a

Browse files
committed
accounts: DB constructors for tests
This commit adds two new test helpers, NewTestDB and NewTestDBFromPath in a file that is only built when the test_db_postgres and test_db_sqlite build flags are not set. When we add sql backends, we will add helpers with the same names for each new backend. We will then use the appropriate build flags to run our unit tests against all backends.
1 parent 82eeadd commit 51d864a

File tree

4 files changed

+38
-14
lines changed

4 files changed

+38
-14
lines changed

accounts/checkers_test.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -523,8 +523,7 @@ func testSendPayment(t *testing.T, uri string) {
523523
errFunc := func(err error) {
524524
lndMock.mainErrChan <- err
525525
}
526-
store, err := NewBoltStore(t.TempDir(), DBFilename)
527-
require.NoError(t, err)
526+
store := NewTestDB(t)
528527
service, err := NewService(store, errFunc)
529528
require.NoError(t, err)
530529

@@ -721,8 +720,7 @@ func TestSendPaymentV2(t *testing.T) {
721720
errFunc := func(err error) {
722721
lndMock.mainErrChan <- err
723722
}
724-
store, err := NewBoltStore(t.TempDir(), DBFilename)
725-
require.NoError(t, err)
723+
store := NewTestDB(t)
726724
service, err := NewService(store, errFunc)
727725
require.NoError(t, err)
728726

@@ -910,8 +908,7 @@ func TestSendToRouteV2(t *testing.T) {
910908
errFunc := func(err error) {
911909
lndMock.mainErrChan <- err
912910
}
913-
store, err := NewBoltStore(t.TempDir(), DBFilename)
914-
require.NoError(t, err)
911+
store := NewTestDB(t)
915912
service, err := NewService(store, errFunc)
916913
require.NoError(t, err)
917914

accounts/service_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ func TestAccountService(t *testing.T) {
264264
isRunning := s.IsRunning()
265265
return isRunning == false
266266
})
267-
lnd.assertMainErrContains(t, "database not open")
267+
lnd.assertMainErrContains(t, ErrDBClosed.Error())
268268
},
269269
}, {
270270
name: "err in invoice err channel",
@@ -833,8 +833,7 @@ func TestAccountService(t *testing.T) {
833833
errFunc := func(err error) {
834834
lndMock.mainErrChan <- err
835835
}
836-
store, err := NewBoltStore(t.TempDir(), DBFilename)
837-
require.NoError(tt, err)
836+
store := NewTestDB(t)
838837
service, err := NewService(store, errFunc)
839838
require.NoError(t, err)
840839

accounts/store_test.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ func TestAccountStore(t *testing.T) {
1515
t.Parallel()
1616
ctx := context.Background()
1717

18-
store, err := NewBoltStore(t.TempDir(), DBFilename)
19-
require.NoError(t, err)
18+
store := NewTestDB(t)
2019

2120
// Create an account that does not expire.
2221
acct1, err := store.NewAccount(ctx, 0, time.Time{}, "foo")
@@ -112,10 +111,9 @@ func TestLastInvoiceIndexes(t *testing.T) {
112111
t.Parallel()
113112
ctx := context.Background()
114113

115-
store, err := NewBoltStore(t.TempDir(), DBFilename)
116-
require.NoError(t, err)
114+
store := NewTestDB(t)
117115

118-
_, _, err = store.LastIndexes(ctx)
116+
_, _, err := store.LastIndexes(ctx)
119117
require.ErrorIs(t, err, ErrNoInvoiceIndexKnown)
120118

121119
require.NoError(t, store.StoreLastIndexes(ctx, 7, 99))

accounts/test_kvdb.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package accounts
2+
3+
import (
4+
"errors"
5+
"testing"
6+
7+
"github.com/stretchr/testify/require"
8+
)
9+
10+
// ErrDBClosed is an error that is returned when a database operation is
11+
// performed on a closed database.
12+
var ErrDBClosed = errors.New("database not open")
13+
14+
// NewTestDB is a helper function that creates an BBolt database for testing.
15+
func NewTestDB(t *testing.T) *BoltStore {
16+
return NewTestDBFromPath(t, t.TempDir())
17+
}
18+
19+
// NewTestDBFromPath is a helper function that creates a new BoltStore with a
20+
// connection to an existing BBolt database for testing.
21+
func NewTestDBFromPath(t *testing.T, dbPath string) *BoltStore {
22+
store, err := NewBoltStore(dbPath, DBFilename)
23+
require.NoError(t, err)
24+
25+
t.Cleanup(func() {
26+
require.NoError(t, store.db.Close())
27+
})
28+
29+
return store
30+
}

0 commit comments

Comments
 (0)