Fix curtimeoutid being reset in the server exit handler
[lsp-test.git] / src / Language / Haskell / LSP / Test / Parsing.hs
index 70481b979a83a67434dff19f1bb304af3ee65789..12ef1a6281547c4fc73dd4ad812cb71c529e95f5 100644 (file)
@@ -6,6 +6,7 @@
 module Language.Haskell.LSP.Test.Parsing
   ( -- $receiving
     satisfy
+  , satisfyMaybe
   , message
   , anyRequest
   , anyResponse
@@ -74,7 +75,7 @@ satisfyMaybe :: (FromServerMessage -> Maybe a) -> Session a
 satisfyMaybe pred = do
 
   skipTimeout <- overridingTimeout <$> get
-  timeoutId <- curTimeoutId <$> get
+  timeoutId <- getCurTimeoutId
   unless skipTimeout $ do
     chan <- asks messageChan
     timeout <- asks (messageTimeout . config)
@@ -84,8 +85,7 @@ satisfyMaybe pred = do
 
   x <- Session await
 
-  unless skipTimeout $
-    modify $ \s -> s { curTimeoutId = timeoutId + 1 }
+  unless skipTimeout (bumpTimeoutId timeoutId)
 
   modify $ \s -> s { lastReceivedMessage = Just x }