diff --git a/lnd_test.go b/lnd_test.go index be94669d4..3881e84ce 100644 --- a/lnd_test.go +++ b/lnd_test.go @@ -4,23 +4,20 @@ package main import ( "bytes" + "crypto/rand" + "crypto/sha256" + "encoding/hex" "fmt" "io" "io/ioutil" "os" "path/filepath" + "reflect" "strings" + "sync/atomic" "testing" "time" - "sync/atomic" - - "encoding/hex" - "reflect" - - "crypto/rand" - "crypto/sha256" - "github.com/btcsuite/btcd/btcjson" "github.com/btcsuite/btcd/chaincfg" "github.com/btcsuite/btcd/chaincfg/chainhash" @@ -9320,8 +9317,9 @@ func testMultiHopReceiverChainClaim(net *lntest.NetworkHarness, t *harnessTest) defer shutdownAndAssert(net, t, carol) // With the network active, we'll now add a new invoice at Carol's end. + const invoiceAmt = 100000 invoiceReq := &lnrpc.Invoice{ - Value: 100000, + Value: invoiceAmt, } ctxt, _ := context.WithTimeout(ctxb, defaultTimeout) carolInvoice, err := carol.AddInvoice(ctxt, invoiceReq) @@ -9527,6 +9525,25 @@ func testMultiHopReceiverChainClaim(net *lntest.NetworkHarness, t *harnessTest) t.Fatalf(predErr.Error()) } + // The invoice should show as settled for Carol, indicating that it was + // swept on-chain. + invoicesReq := &lnrpc.ListInvoiceRequest{} + invoicesResp, err := carol.ListInvoices(ctxb, invoicesReq) + if err != nil { + t.Fatalf("unable to retrieve invoices: %v", err) + } + if len(invoicesResp.Invoices) != 1 { + t.Fatalf("expected 1 invoice, got %d", len(invoicesResp.Invoices)) + } + invoice := invoicesResp.Invoices[0] + if invoice.State != lnrpc.Invoice_SETTLED { + t.Fatalf("expected invoice to be settled on chain") + } + if invoice.AmtPaidSat != invoiceAmt { + t.Fatalf("expected invoice to be settled with %d sat, got "+ + "%d sat", invoiceAmt, invoice.AmtPaidSat) + } + // We'll close out the channel between Alice and Bob, then shutdown // carol to conclude the test. ctxt, _ = context.WithTimeout(ctxb, channelCloseTimeout) @@ -10368,8 +10385,9 @@ func testMultiHopHtlcRemoteChainClaim(net *lntest.NetworkHarness, t *harnessTest defer shutdownAndAssert(net, t, carol) // With the network active, we'll now add a new invoice at Carol's end. + const invoiceAmt = 100000 invoiceReq := &lnrpc.Invoice{ - Value: 100000, + Value: invoiceAmt, } ctxt, _ := context.WithTimeout(ctxb, defaultTimeout) carolInvoice, err := carol.AddInvoice(ctxt, invoiceReq) @@ -10611,6 +10629,25 @@ func testMultiHopHtlcRemoteChainClaim(net *lntest.NetworkHarness, t *harnessTest if err != nil { t.Fatalf(predErr.Error()) } + + // The invoice should show as settled for Carol, indicating that it was + // swept on-chain. + invoicesReq := &lnrpc.ListInvoiceRequest{} + invoicesResp, err := carol.ListInvoices(ctxb, invoicesReq) + if err != nil { + t.Fatalf("unable to retrieve invoices: %v", err) + } + if len(invoicesResp.Invoices) != 1 { + t.Fatalf("expected 1 invoice, got %d", len(invoicesResp.Invoices)) + } + invoice := invoicesResp.Invoices[0] + if invoice.State != lnrpc.Invoice_SETTLED { + t.Fatalf("expected invoice to be settled on chain") + } + if invoice.AmtPaidSat != invoiceAmt { + t.Fatalf("expected invoice to be settled with %d sat, got "+ + "%d sat", invoiceAmt, invoice.AmtPaidSat) + } } // testSwitchCircuitPersistence creates a multihop network to ensure the sender