channeldb: payment statuses migration test
This commit is contained in:
parent
f405376b8b
commit
24e3310f13
71
channeldb/migrations_test.go
Normal file
71
channeldb/migrations_test.go
Normal file
@ -0,0 +1,71 @@
|
||||
package channeldb
|
||||
|
||||
import (
|
||||
"crypto/sha256"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestPaymentStatusesMigration(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
fakePayment := makeFakePayment()
|
||||
paymentHash := sha256.Sum256(fakePayment.PaymentPreimage[:])
|
||||
|
||||
// Add fake payment to the test database and verifies that it was created
|
||||
// and there is only one payment and its status is not "Completed".
|
||||
beforeMigrationFunc := func(d *DB) {
|
||||
if err := d.AddPayment(fakePayment); err != nil {
|
||||
t.Fatalf("unable to add payment: %v", err)
|
||||
}
|
||||
|
||||
payments, err := d.FetchAllPayments()
|
||||
if err != nil {
|
||||
t.Fatalf("unable to fetch payments: %v", err)
|
||||
}
|
||||
|
||||
if len(payments) != 1 {
|
||||
t.Fatalf("wrong qty of paymets: expected 1, got %v",
|
||||
len(payments))
|
||||
}
|
||||
|
||||
paymentStatus, err := d.FetchPaymentStatus(paymentHash)
|
||||
if err != nil {
|
||||
t.Fatalf("unable to fetch payment status: %v", err)
|
||||
}
|
||||
|
||||
// We should receive default status if we have any in database.
|
||||
if paymentStatus != StatusGrounded {
|
||||
t.Fatalf("wrong payment status: expected %v, got %v",
|
||||
StatusGrounded.String(), paymentStatus.String())
|
||||
}
|
||||
}
|
||||
|
||||
// Verify that was created payment status "Completed" for our one fake
|
||||
// payment.
|
||||
afterMigrationFunc := func(d *DB) {
|
||||
meta, err := d.FetchMeta(nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if meta.DbVersionNumber != 1 {
|
||||
t.Fatal("migration 'paymentStatusesMigration' wasn't applied")
|
||||
}
|
||||
|
||||
paymentStatus, err := d.FetchPaymentStatus(paymentHash)
|
||||
if err != nil {
|
||||
t.Fatalf("unable to fetch payment status: %v", err)
|
||||
}
|
||||
|
||||
if paymentStatus != StatusCompleted {
|
||||
t.Fatalf("wrong payment status: expected %v, got %v",
|
||||
StatusCompleted.String(), paymentStatus.String())
|
||||
}
|
||||
}
|
||||
|
||||
applyMigration(t,
|
||||
beforeMigrationFunc,
|
||||
afterMigrationFunc,
|
||||
paymentStatusesMigration,
|
||||
false)
|
||||
}
|
Loading…
Reference in New Issue
Block a user