Integrate Parsec transformer into Session monad
[opengl.git] / test / Test.hs
index 2bd8f4e83b8bf75cef7d32a6f0bc808ae7e6379e..401fd9815fd09e81db4f3af8dafeff13ebc2f2ad 100644 (file)
@@ -5,8 +5,9 @@ import           Data.Proxy
 import           Control.Monad.IO.Class
 import           Control.Lens hiding (List)
 import           Language.Haskell.LSP.Test
-import           Language.Haskell.LSP.Test.Recorded
-import           Language.Haskell.LSP.TH.DataTypesJSON
+import           Language.Haskell.LSP.Test.Replay
+import           Language.Haskell.LSP.Types
+import           Language.Haskell.LSP.Messages
 
 main = hspec $ do
   describe "manual session validation" $ 
@@ -17,8 +18,9 @@ main = hspec $ do
 
         sendNotification TextDocumentDidOpen (DidOpenTextDocumentParams docItem)
 
-        (NotificationMessage _ TextDocumentPublishDiagnostics (PublishDiagnosticsParams _ (List diags))) <-
-          getMessage :: Session PublishDiagnosticsNotification
+        skipMany loggingNotification
+
+        (NotPublishDiagnostics (NotificationMessage _ TextDocumentPublishDiagnostics (PublishDiagnosticsParams _ (List diags)))) <- notification
 
         liftIO $ diags `shouldBe` []
         
@@ -26,7 +28,8 @@ main = hspec $ do
                     TextDocumentDocumentSymbol
                     (DocumentSymbolParams docId)
 
-        (ResponseMessage _ _ (Just (List symbols)) Nothing) <- getMessage :: Session DocumentSymbolsResponse
+        (RspDocumentSymbols (ResponseMessage _ _ (Just (List symbols)) Nothing)) <- response
+
         liftIO $ do
           let mainSymbol = head symbols
           mainSymbol ^. name `shouldBe` "main"