@@ -1694,8 +1694,12 @@ mod tests {
1694
1694
assert ! ( result. is_ok( ) ) ;
1695
1695
}
1696
1696
1697
- #[ tokio:: test]
1698
- async fn test_shutdown_timeout ( ) {
1697
+ #[ allow( clippy:: type_complexity) ]
1698
+ /// Helper to create and configure mock nodes for testing
1699
+ fn setup_test_nodes ( ) -> (
1700
+ ( crate :: NodeInfo , crate :: NodeInfo ) ,
1701
+ HashMap < PublicKey , Arc < Mutex < dyn LightningNode > > > ,
1702
+ ) {
1699
1703
// Create test nodes
1700
1704
let nodes = test_utils:: create_nodes ( 2 , 100_000 ) ;
1701
1705
let mut node_1 = nodes. first ( ) . unwrap ( ) . 0 . clone ( ) ;
@@ -1756,6 +1760,14 @@ mod tests {
1756
1760
clients. insert ( node_1. pubkey , Arc :: new ( Mutex :: new ( mock_node_1) ) ) ;
1757
1761
clients. insert ( node_2. pubkey , Arc :: new ( Mutex :: new ( mock_node_2) ) ) ;
1758
1762
1763
+ ( ( node_1, node_2) , clients)
1764
+ }
1765
+
1766
+ #[ tokio:: test]
1767
+ async fn test_shutdown_timeout ( ) {
1768
+ // Set up test nodes
1769
+ let ( ( node_1, node_2) , clients) = setup_test_nodes ( ) ;
1770
+
1759
1771
// Define payment activity: 2000 msats every 1 second
1760
1772
let activity_definition = crate :: ActivityDefinition {
1761
1773
source : node_1,
@@ -1799,11 +1811,9 @@ mod tests {
1799
1811
elapsed
1800
1812
) ;
1801
1813
1802
- // Check the payment stats
1803
- let total_payments = simulation. get_total_payments ( ) . await ;
1804
-
1805
1814
// We expect at least 2 payments to be attempted (about one per second)
1806
1815
// The exact number may vary due to timing, but should be at least 2
1816
+ let total_payments = simulation. get_total_payments ( ) . await ;
1807
1817
assert ! (
1808
1818
total_payments >= 2 ,
1809
1819
"Expected at least 2 payments to be attempted, got {}" ,
@@ -1813,65 +1823,8 @@ mod tests {
1813
1823
1814
1824
#[ tokio:: test]
1815
1825
async fn test_shutdown_completion ( ) {
1816
- // Create test nodes
1817
- let nodes = test_utils:: create_nodes ( 2 , 100_000 ) ;
1818
- let mut node_1 = nodes. first ( ) . unwrap ( ) . 0 . clone ( ) ;
1819
- let mut node_2 = nodes. get ( 1 ) . unwrap ( ) . 0 . clone ( ) ;
1820
- node_1. features . set_keysend_optional ( ) ;
1821
- node_2. features . set_keysend_optional ( ) ;
1822
- let node_1_for_get_info = node_1. clone ( ) ;
1823
- let node_2_for_get_info = node_2. clone ( ) ;
1824
-
1825
- // Create mock nodes with all necessary expectations
1826
- let mut mock_node_1 = MockLightningNode :: new ( ) ;
1827
- let mut mock_node_2 = MockLightningNode :: new ( ) ;
1828
-
1829
- // Set up node 1 expectations
1830
- mock_node_1. expect_get_info ( ) . return_const ( node_1. clone ( ) ) ;
1831
- mock_node_1
1832
- . expect_get_network ( )
1833
- . returning ( || Ok ( Network :: Regtest ) ) ;
1834
- mock_node_1
1835
- . expect_list_channels ( )
1836
- . returning ( || Ok ( vec ! [ 100_000 ] ) ) ;
1837
- mock_node_1
1838
- . expect_get_node_info ( )
1839
- . returning ( move |_| Ok ( node_1_for_get_info. clone ( ) ) ) ;
1840
- mock_node_1
1841
- . expect_send_payment ( )
1842
- . returning ( |_, _| Ok ( lightning:: ln:: PaymentHash ( [ 0 ; 32 ] ) ) ) ;
1843
- mock_node_1. expect_track_payment ( ) . returning ( |_, _| {
1844
- Ok ( crate :: PaymentResult {
1845
- htlc_count : 1 ,
1846
- payment_outcome : crate :: PaymentOutcome :: Success ,
1847
- } )
1848
- } ) ;
1849
-
1850
- // Set up node 2 expectations
1851
- mock_node_2. expect_get_info ( ) . return_const ( node_2. clone ( ) ) ;
1852
- mock_node_2
1853
- . expect_get_network ( )
1854
- . returning ( || Ok ( Network :: Regtest ) ) ;
1855
- mock_node_2
1856
- . expect_list_channels ( )
1857
- . returning ( || Ok ( vec ! [ 100_000 ] ) ) ;
1858
- mock_node_2
1859
- . expect_get_node_info ( )
1860
- . returning ( move |_| Ok ( node_2_for_get_info. clone ( ) ) ) ;
1861
- mock_node_2
1862
- . expect_send_payment ( )
1863
- . returning ( |_, _| Ok ( lightning:: ln:: PaymentHash ( [ 0 ; 32 ] ) ) ) ;
1864
- mock_node_2. expect_track_payment ( ) . returning ( |_, _| {
1865
- Ok ( crate :: PaymentResult {
1866
- htlc_count : 1 ,
1867
- payment_outcome : crate :: PaymentOutcome :: Success ,
1868
- } )
1869
- } ) ;
1870
-
1871
- // Create a hashmap of nodes
1872
- let mut clients: HashMap < PublicKey , Arc < Mutex < dyn LightningNode > > > = HashMap :: new ( ) ;
1873
- clients. insert ( node_1. pubkey , Arc :: new ( Mutex :: new ( mock_node_1) ) ) ;
1874
- clients. insert ( node_2. pubkey , Arc :: new ( Mutex :: new ( mock_node_2) ) ) ;
1826
+ // Set up test nodes
1827
+ let ( ( node_1, node_2) , clients) = setup_test_nodes ( ) ;
1875
1828
1876
1829
// Define an activity that will make 3 payments of 2000 msats each
1877
1830
let activity_definition = crate :: ActivityDefinition {
@@ -1903,10 +1856,8 @@ mod tests {
1903
1856
// Verify the simulation shut down correctly
1904
1857
assert ! ( result. is_ok( ) , "Simulation should end without error" ) ;
1905
1858
1906
- // Check the payment stats
1907
- let total_payments = simulation. get_total_payments ( ) . await ;
1908
-
1909
1859
// We expect exactly 3 payments to be attempted
1860
+ let total_payments = simulation. get_total_payments ( ) . await ;
1910
1861
assert_eq ! (
1911
1862
total_payments, 3 ,
1912
1863
"Expected exactly 3 payments to be attempted, got {}" ,
0 commit comments