Skip to content

Commit 3ca0328

Browse files
test: add test for self payment
1 parent 853f63b commit 3ca0328

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

lightning/src/ln/payment_tests.rs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1552,6 +1552,37 @@ fn preflight_probes_yield_event_and_skip() {
15521552
assert!(!nodes[0].node.has_pending_payments());
15531553
}
15541554

1555+
#[test]
1556+
fn test_self_payment() {
1557+
let chanmon_cfg = create_chanmon_cfgs(1);
1558+
let node_cfg = create_node_cfgs(1, &chanmon_cfg);
1559+
let node_chanmgr = create_node_chanmgrs(1, &node_cfg, &[None, None]);
1560+
let nodes = create_network(1, &node_cfg, &node_chanmgr);
1561+
let (payment_hash, payment_secret) = nodes[0].node.create_inbound_payment(Some(1000), 60, None).unwrap();
1562+
let payment_params = PaymentParameters::from_node_id(nodes[0].node.get_our_node_id(), TEST_FINAL_CLTV);
1563+
let route_params = RouteParameters {
1564+
payment_params,
1565+
final_value_msat: 100000,
1566+
max_total_routing_fee_msat: None,
1567+
};
1568+
let res = nodes[0].node.send_payment(payment_hash, RecipientOnionFields::secret_only(payment_secret), PaymentId(payment_hash.0), route_params, Retry::Attempts(0));
1569+
assert!(res.is_ok());
1570+
let events = nodes[0].node.get_and_clear_pending_events();
1571+
assert_eq!(events.len(), 1);
1572+
assert!(matches!(events[0], Event::PaymentClaimable { .. }));
1573+
let pending_payments = nodes[0].node.list_recent_payments();
1574+
assert_eq!(pending_payments.len(), 1);
1575+
let payment_preimage = nodes[0].node.get_payment_preimage(payment_hash, payment_secret).unwrap();
1576+
assert!(matches!(pending_payments[0], RecentPaymentDetails::Pending { .. }));
1577+
nodes[0].node.claim_funds(payment_preimage);
1578+
let events = nodes[0].node.get_and_clear_pending_events();
1579+
assert_eq!(events.len(), 2);
1580+
assert!(matches!(events[0], Event::PaymentSent { .. }));
1581+
assert!(matches!(events[1], Event::PaymentClaimed { .. }));
1582+
let pending_payments = nodes[0].node.list_recent_payments();
1583+
assert!(matches!(pending_payments[0], RecentPaymentDetails::Fulfilled { .. }));
1584+
}
1585+
15551586
#[test]
15561587
fn claimed_send_payment_idempotent() {
15571588
// Tests that `send_payment` (and friends) are (reasonably) idempotent.

0 commit comments

Comments
 (0)