Expose satisfyMaybe
[lsp-test.git] / src / Language / Haskell / LSP / Test / Parsing.hs
index 0810d20c0f56f45909ef5b3d30c79b78c34019de..5ce9b52995c05f0deb899c1327ae7476043760d2 100644 (file)
@@ -6,6 +6,7 @@
 module Language.Haskell.LSP.Test.Parsing
   ( -- $receiving
     satisfy
+  , satisfyMaybe
   , message
   , anyRequest
   , anyResponse
@@ -23,7 +24,8 @@ import Control.Monad.IO.Class
 import Control.Monad
 import Data.Aeson
 import qualified Data.ByteString.Lazy.Char8 as B
-import Data.Conduit.Parser
+import Data.Conduit.Parser hiding (named)
+import qualified Data.Conduit.Parser (named)
 import qualified Data.Text as T
 import Data.Typeable
 import Language.Haskell.LSP.Messages
@@ -68,7 +70,7 @@ satisfy pred = satisfyMaybe (\msg -> if pred msg then Just msg else Nothing)
 
 -- | Consumes and returns the result of the specified predicate if it returns `Just`.
 --
--- @since 0.5.3.0
+-- @since 0.6.1.0
 satisfyMaybe :: (FromServerMessage -> Maybe a) -> Session a
 satisfyMaybe pred = do
 
@@ -81,7 +83,7 @@ satisfyMaybe pred = do
       threadDelay (timeout * 1000000)
       writeChan chan (TimeoutMessage timeoutId)
 
-  x <- await
+  x <- Session await
 
   unless skipTimeout $
     modify $ \s -> s { curTimeoutId = timeoutId + 1 }
@@ -94,6 +96,9 @@ satisfyMaybe pred = do
       return a
     Nothing -> empty
 
+named :: T.Text -> Session a -> Session a
+named s (Session x) = Session (Data.Conduit.Parser.named s x)
+
 -- | Matches a message of type @a@.
 message :: forall a. (Typeable a, FromJSON a) => Session a
 message =