itest: add the test for DeleteCanceledInvoice
This commit is contained in:
2 files changed
+103
No files matched your search
@@ -723,6 +723,10 @@ var allTestCases = []*lntest.TestCase{
|
|||||||
Name: "grpc not found",
|
Name: "grpc not found",
|
||||||
TestFunc: testGRPCNotFound,
|
TestFunc: testGRPCNotFound,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Name: "delete canceled invoice",
|
||||||
|
TestFunc: testDeleteCanceledInvoice,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// appendPrefixed is used to add a prefix to each test name in the subtests
|
// appendPrefixed is used to add a prefix to each test name in the subtests
|
||||||
|
|||||||
@@ -0,0 +1,99 @@
|
|||||||
|
package itest
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
|
||||||
|
"github.com/lightningnetwork/lnd/invoices"
|
||||||
|
"github.com/lightningnetwork/lnd/lnrpc"
|
||||||
|
"github.com/lightningnetwork/lnd/lntest"
|
||||||
|
"github.com/lightningnetwork/lnd/lntypes"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func testDeleteCanceledInvoice(ht *lntest.HarnessTest) {
|
||||||
|
bob := ht.NewNode("bob", nil)
|
||||||
|
|
||||||
|
// Create 2 invoices for Bob.
|
||||||
|
const numInvoices = 2
|
||||||
|
invoiceResp := make([]*lnrpc.AddInvoiceResponse, numInvoices)
|
||||||
|
|
||||||
|
for i := range numInvoices {
|
||||||
|
// Create a unique 32-byte preimage for each invoice.
|
||||||
|
preimage := bytes.Repeat([]byte{byte(i + 1)}, 32)
|
||||||
|
|
||||||
|
invoice := &lnrpc.Invoice{
|
||||||
|
RPreimage: preimage,
|
||||||
|
Value: paymentAmt,
|
||||||
|
}
|
||||||
|
|
||||||
|
invoiceResp[i] = bob.RPC.AddInvoice(invoice)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cancel all invoices except the last one.
|
||||||
|
for i := range numInvoices - 1 {
|
||||||
|
bob.RPC.CancelInvoice(invoiceResp[i].RHash)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Let's assert an error while providing no invoice hash.
|
||||||
|
bob.RPC.DeleteCanceledInvoiceAssertErr(
|
||||||
|
&lnrpc.DelCanceledInvoiceReq{},
|
||||||
|
invoices.ErrNoInvoiceHash.Error(),
|
||||||
|
)
|
||||||
|
|
||||||
|
// Let's assert an error while providing a hash with an invalid length.
|
||||||
|
bob.RPC.DeleteCanceledInvoiceAssertErr(
|
||||||
|
&lnrpc.DelCanceledInvoiceReq{InvoiceHash: "bb02fbfa62983b6b62"},
|
||||||
|
"invalid hash string length",
|
||||||
|
)
|
||||||
|
|
||||||
|
// Let's assert an error is returned for a hash with invalid encoding.
|
||||||
|
bob.RPC.DeleteCanceledInvoiceAssertErr(
|
||||||
|
&lnrpc.DelCanceledInvoiceReq{
|
||||||
|
InvoiceHash: "bb02fbfa62983b6b621376bf8230732dd3a6dce" +
|
||||||
|
"a9f5df803c0935ae6ce7440dg",
|
||||||
|
}, "encoding/hex: invalid byte",
|
||||||
|
)
|
||||||
|
|
||||||
|
// Let's delete one canceled invoice.
|
||||||
|
invoiceToDelete := lntypes.Hash(invoiceResp[0].RHash).String()
|
||||||
|
resp := bob.RPC.DeleteCanceledInvoice(
|
||||||
|
&lnrpc.DelCanceledInvoiceReq{InvoiceHash: invoiceToDelete},
|
||||||
|
)
|
||||||
|
|
||||||
|
require.Contains(
|
||||||
|
ht, resp.String(), "canceled invoice deleted successfully",
|
||||||
|
)
|
||||||
|
|
||||||
|
respList := bob.RPC.ListInvoices(&lnrpc.ListInvoiceRequest{})
|
||||||
|
|
||||||
|
// Assert that the invoice was deleted.
|
||||||
|
require.Len(ht, respList.Invoices, numInvoices-1)
|
||||||
|
|
||||||
|
// Let's assert an error while deleting a non-existent invoice.
|
||||||
|
bob.RPC.DeleteCanceledInvoiceAssertErr(
|
||||||
|
&lnrpc.DelCanceledInvoiceReq{InvoiceHash: invoiceToDelete},
|
||||||
|
invoices.ErrInvoiceNotFound.Error(),
|
||||||
|
)
|
||||||
|
|
||||||
|
// Let's assert an error while deleting a non canceled invoice.
|
||||||
|
notCanceledInvoice := lntypes.Hash(invoiceResp[numInvoices-1].RHash).
|
||||||
|
String()
|
||||||
|
|
||||||
|
bob.RPC.DeleteCanceledInvoiceAssertErr(
|
||||||
|
&lnrpc.DelCanceledInvoiceReq{InvoiceHash: notCanceledInvoice},
|
||||||
|
invoices.ErrInvoiceNotCanceled.Error(),
|
||||||
|
)
|
||||||
|
|
||||||
|
// Assert that the last invoice in the invoiceResp is still present and
|
||||||
|
// OPEN.
|
||||||
|
respList = bob.RPC.ListInvoices(&lnrpc.ListInvoiceRequest{})
|
||||||
|
require.Equal(
|
||||||
|
ht, invoiceResp[numInvoices-1].RHash,
|
||||||
|
respList.Invoices[0].RHash,
|
||||||
|
)
|
||||||
|
|
||||||
|
require.Equal(ht, lnrpc.Invoice_OPEN, respList.Invoices[0].State)
|
||||||
|
|
||||||
|
// Assert that just one invoice exists.
|
||||||
|
require.Len(ht, respList.Invoices, 1)
|
||||||
|
}
|
||||||
Reference in new issue
Block a user