Skip to content

Commit 2d500c9

Browse files
committed
Add error_code to PaymentFailed for testing and
fix htlc_fail_async_shutdown test making expect PaymentFailureNetworkUpdate
1 parent 67d45df commit 2d500c9

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

src/ln/channelmanager.rs

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4169,7 +4169,7 @@ mod tests {
41694169
let events = origin_node.node.get_and_clear_pending_events();
41704170
assert_eq!(events.len(), 1);
41714171
match events[0] {
4172-
Event::PaymentFailed { payment_hash, rejected_by_dest } => {
4172+
Event::PaymentFailed { payment_hash, rejected_by_dest, .. } => {
41734173
assert_eq!(payment_hash, our_payment_hash);
41744174
assert!(rejected_by_dest);
41754175
},
@@ -4899,20 +4899,37 @@ mod tests {
48994899
assert!(updates_2.update_fee.is_none());
49004900

49014901
nodes[0].node.handle_update_fail_htlc(&nodes[1].node.get_our_node_id(), &updates_2.update_fail_htlcs[0]).unwrap();
4902+
49024903
commitment_signed_dance!(nodes[0], nodes[1], updates_2.commitment_signed, false, true);
49034904

49044905
let events = nodes[0].node.get_and_clear_pending_events();
49054906
assert_eq!(events.len(), 1);
49064907
match events[0] {
4907-
Event::PaymentFailed { ref payment_hash, ref rejected_by_dest } => {
4908+
Event::PaymentFailed { ref payment_hash, ref rejected_by_dest, .. } => {
49084909
assert_eq!(our_payment_hash, *payment_hash);
49094910
assert!(!rejected_by_dest);
49104911
},
49114912
_ => panic!("Unexpected event"),
49124913
}
49134914

4915+
let msg_events = nodes[0].node.get_and_clear_pending_msg_events();
4916+
assert_eq!(msg_events.len(), 2);
4917+
let node_0_closing_signed = match msg_events[0] {
4918+
MessageSendEvent::SendClosingSigned { ref node_id, ref msg } => {
4919+
assert_eq!(*node_id, nodes[1].node.get_our_node_id());
4920+
(*msg).clone()
4921+
},
4922+
_ => panic!("Unexpected event"),
4923+
};
4924+
match msg_events[1] {
4925+
MessageSendEvent::PaymentFailureNetworkUpdate { update: msgs::HTLCFailChannelUpdate::NodeFailure { ref node_id, ref is_permanent }} => {
4926+
assert!(is_permanent);
4927+
assert_eq!(*node_id, nodes[1].node.get_our_node_id());
4928+
},
4929+
_ => panic!("Unexpected event"),
4930+
}
4931+
49144932
assert!(nodes[1].node.get_and_clear_pending_msg_events().is_empty());
4915-
let node_0_closing_signed = get_event_msg!(nodes[0], MessageSendEvent::SendClosingSigned, nodes[1].node.get_our_node_id());
49164933
nodes[1].node.handle_closing_signed(&nodes[0].node.get_our_node_id(), &node_0_closing_signed).unwrap();
49174934
let (_, node_1_closing_signed) = get_closing_signed_broadcast!(nodes[1].node, nodes[0].node.get_our_node_id());
49184935
nodes[0].node.handle_closing_signed(&nodes[1].node.get_our_node_id(), &node_1_closing_signed.unwrap()).unwrap();
@@ -6439,7 +6456,7 @@ mod tests {
64396456
_ => panic!("Unexpected event"),
64406457
}
64416458
match events[1] {
6442-
Event::PaymentFailed { payment_hash, rejected_by_dest } => {
6459+
Event::PaymentFailed { payment_hash, rejected_by_dest, .. } => {
64436460
assert_eq!(payment_hash, payment_hash_5);
64446461
assert!(rejected_by_dest);
64456462
},

src/util/events.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ pub enum Event {
8484
/// the payment has failed, not just the route in question. If this is not set, you may
8585
/// retry the payment via a different route.
8686
rejected_by_dest: bool,
87+
#[cfg(test)]
88+
error_code: Some(u16),
8789
},
8890
/// Used to indicate that ChannelManager::process_pending_htlc_forwards should be called at a
8991
/// time in the future.

0 commit comments

Comments
 (0)