@@ -561,6 +561,24 @@ testMonitorNode transport = do
562 takeMVar done
562 takeMVar done
564+testMonitorLiveNode :: NT.Transport -> Assertion
565+testMonitorLiveNode transport = do
566+ [node1, node2] <- replicateM 2 $ newLocalNode transport initRemoteTable
567+ ready <- newEmptyMVar
568+ done <- newEmptyMVar
570+ forkProcess node2 $ do
571+ ref <- monitorNode (localNodeId node1)
572+ liftIO $ putMVar ready ()
573+ NodeMonitorNotification ref' nid _ <- expect
574+ True <- return $ ref == ref' && nid == localNodeId node1
575+ liftIO $ putMVar done ()
578+ closeLocalNode node1
564testMonitorChannel :: NT.Transport -> Assertion
582testMonitorChannel :: NT.Transport -> Assertion
565testMonitorChannel transport = do
583testMonitorChannel transport = do
566 [node1, node2] <- replicateM 2 $ newLocalNode transport initRemoteTable
584 [node1, node2] <- replicateM 2 $ newLocalNode transport initRemoteTable
@@ -1281,6 +1299,7 @@ tests (transport, transportInternals) = [
1281 , testCase "UnlinkDisconnect" (testMonitorDisconnect transport False True)
1299 , testCase "UnlinkDisconnect" (testMonitorDisconnect transport False True)
1282 -- Monitoring nodes and channels
1300 -- Monitoring nodes and channels
1283 , testCase "MonitorNode" (testMonitorNode transport)
1301 , testCase "MonitorNode" (testMonitorNode transport)
1302+ , testCase "MonitorLiveNode" (testMonitorLiveNode transport)
1284 , testCase "MonitorChannel" (testMonitorChannel transport)
1303 , testCase "MonitorChannel" (testMonitorChannel transport)
1285 -- Reconnect
1304 -- Reconnect
1286 , testCase "Reconnect" (testReconnect transport transportInternals)
1305 , testCase "Reconnect" (testReconnect transport transportInternals)