Skip to content

Commit 3c9be11

Browse files
committed
add test for spontaneous payment
feat : introduces test_spontaneous_payment method which : - setup two nodes and arbitrary send a 2.5 msat keysend with a custom tlv record
1 parent 5e3396e commit 3c9be11

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

bindings/python/src/ldk_node/test_ldk_node.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,43 @@ def setUp(self):
191191
esplora_endpoint = get_esplora_endpoint()
192192
mine_and_wait(esplora_endpoint, 1)
193193

194+
def test_spontaneous_payment(self):
195+
"""Spontaneous payment test in python: keysend after channel ready."""
196+
esplora_endpoint = get_esplora_endpoint()
197+
198+
node_1, node_2, tmp_dir_1, tmp_dir_2, node_id_1, node_id_2, listening_addresses_2 = setup_two_nodes(esplora_endpoint)
199+
fund_nodes(node_1, node_2, esplora_endpoint)
200+
open_channel_and_wait_ready(node_1, node_2, node_id_2, listening_addresses_2[0], esplora_endpoint)
201+
202+
keysend_amount_msat = 2_500_000
203+
custom_tlvs = [CustomTlvRecord(type_num=13377331, value=bytes([1, 2, 3]))]
204+
keysend_payment_id = node_1.spontaneous_payment().send_with_custom_tlvs(
205+
keysend_amount_msat, node_id_2, None, custom_tlvs
206+
)
207+
208+
expect_event(node_1, Event.PAYMENT_SUCCESSFUL)
209+
received_event = expect_event(node_2, Event.PAYMENT_RECEIVED)
210+
211+
self.assertEqual(received_event.amount_msat, keysend_amount_msat)
212+
self.assertEqual(received_event.custom_records, custom_tlvs)
213+
214+
sender_payment = node_1.payment(keysend_payment_id)
215+
receiver_payment = node_2.payment(keysend_payment_id)
216+
217+
self.assertIsNotNone(sender_payment)
218+
self.assertIsNotNone(receiver_payment)
219+
self.assertEqual(sender_payment.status, PaymentStatus.SUCCEEDED)
220+
self.assertEqual(sender_payment.direction, PaymentDirection.OUTBOUND)
221+
self.assertEqual(sender_payment.amount_msat, keysend_amount_msat)
222+
self.assertTrue(sender_payment.kind.is_spontaneous())
223+
224+
self.assertEqual(receiver_payment.status, PaymentStatus.SUCCEEDED)
225+
self.assertEqual(receiver_payment.direction, PaymentDirection.INBOUND)
226+
self.assertEqual(receiver_payment.amount_msat, keysend_amount_msat)
227+
self.assertTrue(receiver_payment.kind.is_spontaneous())
228+
229+
stop_and_cleanup(node_1, node_2, tmp_dir_1, tmp_dir_2)
230+
194231
def test_channel_full_cycle(self):
195232
esplora_endpoint = get_esplora_endpoint()
196233

0 commit comments

Comments
 (0)