vspd/database/database_test.go
Jamie Holdstock d0dedd3af0
Resolving some TODOs (#71)
* Dont allow duplicate fee addresses

* Load webapi keypair in webapi package.

* Split database test file

* Add extra DB testing.
2020-05-27 14:55:59 +01:00

52 lines
1.1 KiB
Go

package database
import (
"context"
"os"
"sync"
"testing"
)
var (
testDb = "test.db"
db *VspDatabase
)
// TestDatabase runs all database tests.
func TestDatabase(t *testing.T) {
// Ensure we are starting with a clean environment.
os.Remove(testDb)
// All sub-tests to run.
tests := map[string]func(*testing.T){
"testInsertNewTicket": testInsertNewTicket,
"testGetTicketByHash": testGetTicketByHash,
"testUpdateTicket": testUpdateTicket,
"testTicketFeeExpired": testTicketFeeExpired,
"testAddressIndex": testAddressIndex,
}
for testName, test := range tests {
// Create a new blank database for each sub-test.
var err error
var wg sync.WaitGroup
ctx, cancel := context.WithCancel(context.TODO())
db, err = Open(ctx, &wg, testDb)
if err != nil {
t.Fatalf("error creating test database: %v", err)
}
// Run the sub-test.
t.Run(testName, test)
// Request database shutdown and wait for it to complete.
cancel()
wg.Wait()
os.Remove(testDb)
}
}
// TODO: Add tests for CountTickets, GetUnconfirmedTickets, GetPendingFees,
// GetUnconfirmedFees.