channeldb: update existing invoice tests to due to recent field additions
This commit is contained in:
parent
24ae13d3a5
commit
532975588d
@ -82,15 +82,24 @@ func TestInvoiceWorkflow(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unable to find invoice: %v", err)
|
t.Fatalf("unable to find invoice: %v", err)
|
||||||
}
|
}
|
||||||
if !reflect.DeepEqual(fakeInvoice, dbInvoice) {
|
if !reflect.DeepEqual(*fakeInvoice, dbInvoice) {
|
||||||
t.Fatalf("invoice fetched from db doesn't match original %v vs %v",
|
t.Fatalf("invoice fetched from db doesn't match original %v vs %v",
|
||||||
spew.Sdump(fakeInvoice), spew.Sdump(dbInvoice))
|
spew.Sdump(fakeInvoice), spew.Sdump(dbInvoice))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The add index of the invoice retrieved from the database should now
|
||||||
|
// be fully populated. As this is the first index written to the DB,
|
||||||
|
// the addIndex should be 1.
|
||||||
|
if dbInvoice.AddIndex != 1 {
|
||||||
|
t.Fatalf("wrong add index: expected %v, got %v", 1,
|
||||||
|
dbInvoice.AddIndex)
|
||||||
|
}
|
||||||
|
|
||||||
// Settle the invoice, the version retrieved from the database should
|
// Settle the invoice, the version retrieved from the database should
|
||||||
// now have the settled bit toggle to true and a non-default
|
// now have the settled bit toggle to true and a non-default
|
||||||
// SettledDate
|
// SettledDate
|
||||||
if err := db.SettleInvoice(paymentHash); err != nil {
|
payAmt := fakeInvoice.Terms.Value * 2
|
||||||
|
if err := db.SettleInvoice(paymentHash, payAmt); err != nil {
|
||||||
t.Fatalf("unable to settle invoice: %v", err)
|
t.Fatalf("unable to settle invoice: %v", err)
|
||||||
}
|
}
|
||||||
dbInvoice2, err := db.LookupInvoice(paymentHash)
|
dbInvoice2, err := db.LookupInvoice(paymentHash)
|
||||||
@ -100,11 +109,21 @@ func TestInvoiceWorkflow(t *testing.T) {
|
|||||||
if !dbInvoice2.Terms.Settled {
|
if !dbInvoice2.Terms.Settled {
|
||||||
t.Fatalf("invoice should now be settled but isn't")
|
t.Fatalf("invoice should now be settled but isn't")
|
||||||
}
|
}
|
||||||
|
|
||||||
if dbInvoice2.SettleDate.IsZero() {
|
if dbInvoice2.SettleDate.IsZero() {
|
||||||
t.Fatalf("invoice should have non-zero SettledDate but isn't")
|
t.Fatalf("invoice should have non-zero SettledDate but isn't")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Our 2x payment should be reflected, and also the settle index of 1
|
||||||
|
// should also have been committed for this index.
|
||||||
|
if dbInvoice2.AmtPaid != payAmt {
|
||||||
|
t.Fatalf("wrong amt paid: expected %v, got %v", payAmt,
|
||||||
|
dbInvoice2.AmtPaid)
|
||||||
|
}
|
||||||
|
if dbInvoice2.SettleIndex != 1 {
|
||||||
|
t.Fatalf("wrong settle index: expected %v, got %v", 1,
|
||||||
|
dbInvoice2.SettleIndex)
|
||||||
|
}
|
||||||
|
|
||||||
// Attempt to insert generated above again, this should fail as
|
// Attempt to insert generated above again, this should fail as
|
||||||
// duplicates are rejected by the processing logic.
|
// duplicates are rejected by the processing logic.
|
||||||
if err := db.AddInvoice(fakeInvoice); err != ErrDuplicateInvoice {
|
if err := db.AddInvoice(fakeInvoice); err != ErrDuplicateInvoice {
|
||||||
@ -119,11 +138,11 @@ func TestInvoiceWorkflow(t *testing.T) {
|
|||||||
t.Fatalf("lookup should have failed, instead %v", err)
|
t.Fatalf("lookup should have failed, instead %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add 100 random invoices.
|
// Add 10 random invoices.
|
||||||
const numInvoices = 10
|
const numInvoices = 10
|
||||||
amt := lnwire.NewMSatFromSatoshis(1000)
|
amt := lnwire.NewMSatFromSatoshis(1000)
|
||||||
invoices := make([]*Invoice, numInvoices+1)
|
invoices := make([]*Invoice, numInvoices+1)
|
||||||
invoices[0] = dbInvoice2
|
invoices[0] = &dbInvoice2
|
||||||
for i := 1; i < len(invoices)-1; i++ {
|
for i := 1; i < len(invoices)-1; i++ {
|
||||||
invoice, err := randInvoice(amt)
|
invoice, err := randInvoice(amt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -148,7 +167,7 @@ func TestInvoiceWorkflow(t *testing.T) {
|
|||||||
// order (and the primary key should be incremented with each
|
// order (and the primary key should be incremented with each
|
||||||
// insertion).
|
// insertion).
|
||||||
for i := 0; i < len(invoices)-1; i++ {
|
for i := 0; i < len(invoices)-1; i++ {
|
||||||
if !reflect.DeepEqual(invoices[i], dbInvoices[i]) {
|
if !reflect.DeepEqual(*invoices[i], dbInvoices[i]) {
|
||||||
t.Fatalf("retrieved invoices don't match %v vs %v",
|
t.Fatalf("retrieved invoices don't match %v vs %v",
|
||||||
spew.Sdump(invoices[i]),
|
spew.Sdump(invoices[i]),
|
||||||
spew.Sdump(dbInvoices[i]))
|
spew.Sdump(dbInvoices[i]))
|
||||||
|
Loading…
Reference in New Issue
Block a user