mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-02-22 14:42:40 +01:00
tests: add test that pay gets update correct.
This is the part which works: we have another old PR (or simply uncomment the FIXME section) for the routehint case. Closes: #4781 See-also: #4808 Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
0cbf918af1
commit
0c3aa355db
1 changed files with 34 additions and 0 deletions
|
@ -312,6 +312,40 @@ def test_pay_get_error_with_update(node_factory):
|
||||||
wait_for(lambda: not l1.is_channel_active(chanid2))
|
wait_for(lambda: not l1.is_channel_active(chanid2))
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.developer("needs DEVELOPER=1 for dev_suppress_gossip, dev-routes")
|
||||||
|
def test_pay_error_update_fees(node_factory):
|
||||||
|
"""We should process an update inside a temporary_channel_failure"""
|
||||||
|
l1, l2, l3 = node_factory.line_graph(3, fundchannel=True, wait_for_announce=True)
|
||||||
|
|
||||||
|
# Don't include any routehints in first invoice.
|
||||||
|
inv1 = l3.rpc.call('invoice',
|
||||||
|
{'msatoshi': 123000,
|
||||||
|
'label': 'test_pay_error_update_fees',
|
||||||
|
'description': 'description',
|
||||||
|
'dev-routes': []})
|
||||||
|
|
||||||
|
inv2 = l3.rpc.invoice(123000, 'test_pay_error_update_fees2', 'desc') # noqa: F841
|
||||||
|
|
||||||
|
# Make sure l2 doesn't tell l1 directly that channel fee is changed.
|
||||||
|
l2.rpc.dev_suppress_gossip()
|
||||||
|
l2.rpc.setchannel(l3.info['id'], 1337, 137, enforcedelay=0)
|
||||||
|
|
||||||
|
# Should bounce off and retry...
|
||||||
|
l1.rpc.pay(inv1['bolt11'])
|
||||||
|
attempts = only_one(l1.rpc.paystatus(inv1['bolt11'])['pay'])['attempts']
|
||||||
|
assert len(attempts) == 2
|
||||||
|
# WIRE_FEE_INSUFFICIENT = UPDATE|12
|
||||||
|
assert attempts[0]['failure']['data']['failcode'] == 4108
|
||||||
|
|
||||||
|
# FIXME: We *DO NOT* handle misleading routehints!
|
||||||
|
# # Should ignore old routehint and do the same...
|
||||||
|
# l1.rpc.pay(inv2['bolt11'])
|
||||||
|
# attempts = only_one(l1.rpc.paystatus(inv2['bolt11'])['pay'])['attempts']
|
||||||
|
# assert len(attempts) == 2
|
||||||
|
# # WIRE_FEE_INSUFFICIENT = UPDATE|12
|
||||||
|
# assert attempts[0]['failure']['data']['failcode'] == 4108
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.developer("needs to deactivate shadow routing")
|
@pytest.mark.developer("needs to deactivate shadow routing")
|
||||||
def test_pay_optional_args(node_factory, compat):
|
def test_pay_optional_args(node_factory, compat):
|
||||||
l1, l2 = node_factory.line_graph(2)
|
l1, l2 = node_factory.line_graph(2)
|
||||||
|
|
Loading…
Add table
Reference in a new issue