mirror of
https://github.com/lightninglabs/lightning-terminal.git
synced 2026-08-13 12:33:36 +02:00
itest: utilize more options when paying with satoshi
This commit is contained in:
parent
16b5b84fd5
commit
3e26bd261d
2 changed files with 22 additions and 16 deletions
|
|
@ -1388,7 +1388,7 @@ func sendKeySendPayment(t *testing.T, src, dst *HarnessNode,
|
|||
stream, err := src.RouterClient.SendPaymentV2(ctxt, req)
|
||||
require.NoError(t, err)
|
||||
|
||||
result, err := getFinalPaymentResult(stream)
|
||||
result, err := getPaymentResult(stream, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, lnrpc.Payment_SUCCEEDED, result.Status)
|
||||
}
|
||||
|
|
@ -1448,6 +1448,12 @@ func payPayReqWithSatoshi(t *testing.T, payer *HarnessNode, payReq string,
|
|||
ctxt, cancel := context.WithTimeout(ctxb, defaultTimeout)
|
||||
defer cancel()
|
||||
|
||||
shardSize := uint64(0)
|
||||
|
||||
if cfg.smallShards {
|
||||
shardSize = 80_000_000
|
||||
}
|
||||
|
||||
sendReq := &routerrpc.SendPaymentRequest{
|
||||
PaymentRequest: payReq,
|
||||
TimeoutSeconds: int32(PaymentTimeout.Seconds()),
|
||||
|
|
@ -1455,6 +1461,7 @@ func payPayReqWithSatoshi(t *testing.T, payer *HarnessNode, payReq string,
|
|||
MaxParts: cfg.maxShards,
|
||||
OutgoingChanIds: cfg.outgoingChanIDs,
|
||||
AllowSelfPayment: cfg.allowSelfPayment,
|
||||
MaxShardSizeMsat: shardSize,
|
||||
}
|
||||
|
||||
if cfg.smallShards {
|
||||
|
|
@ -1464,17 +1471,9 @@ func payPayReqWithSatoshi(t *testing.T, payer *HarnessNode, payReq string,
|
|||
stream, err := payer.RouterClient.SendPaymentV2(ctxt, sendReq)
|
||||
require.NoError(t, err)
|
||||
|
||||
if cfg.payStatus == lnrpc.Payment_IN_FLIGHT {
|
||||
t.Logf("Waiting for initial stream response...")
|
||||
result, err := stream.Recv()
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, cfg.payStatus, result.Status)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
result, err := getFinalPaymentResult(stream)
|
||||
result, err := getPaymentResult(
|
||||
stream, cfg.payStatus == lnrpc.Payment_IN_FLIGHT,
|
||||
)
|
||||
if cfg.errSubStr != "" {
|
||||
require.ErrorContains(t, err, cfg.errSubStr)
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -416,13 +416,13 @@ func payNode(invoiceCtx, paymentCtx context.Context, t *harnessTest,
|
|||
stream, err := from.SendPaymentV2(paymentCtx, sendReq)
|
||||
require.NoError(t.t, err)
|
||||
|
||||
result, err := getFinalPaymentResult(stream)
|
||||
result, err := getPaymentResult(stream, false)
|
||||
require.NoError(t.t, err)
|
||||
require.Equal(t.t, result.Status, lnrpc.Payment_SUCCEEDED)
|
||||
}
|
||||
|
||||
func getFinalPaymentResult(stream routerrpc.Router_SendPaymentV2Client) (
|
||||
*lnrpc.Payment, error) {
|
||||
func getPaymentResult(stream routerrpc.Router_SendPaymentV2Client,
|
||||
isHodl bool) (*lnrpc.Payment, error) {
|
||||
|
||||
for {
|
||||
payment, err := stream.Recv()
|
||||
|
|
@ -430,7 +430,14 @@ func getFinalPaymentResult(stream routerrpc.Router_SendPaymentV2Client) (
|
|||
return nil, err
|
||||
}
|
||||
|
||||
if payment.Status != lnrpc.Payment_IN_FLIGHT {
|
||||
// If this is a hodl payment, then we'll return the first
|
||||
// expected response. Otherwise, we'll wait until the in flight
|
||||
// clears to we can observe the other payment states.
|
||||
switch {
|
||||
case isHodl:
|
||||
return payment, nil
|
||||
|
||||
case payment.Status != lnrpc.Payment_IN_FLIGHT:
|
||||
return payment, nil
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue