Start work adding the session monad for replays
[lsp-test.git] / test / Test.hs
index 3fd14e4c5dc9cbad53ff157cbffd0e8da8aecfae..7c7f272ad6f620c32735ae47aeeef896c2386b48 100644 (file)
@@ -2,37 +2,17 @@ import Test.Hspec
 import System.IO
 import System.Directory
 import Control.Lens
+import Control.Monad.IO.Class
 import Language.Haskell.LSP.Test.Recorded
 -- import Language.Haskell.LSP.Test.Parsing
 -- import Language.Haskell.LSP.Test.Files
 import qualified Language.Haskell.LSP.TH.DataTypesJSON as LSP
 
-main = hspec $ do
-  describe "Replay" $ do
-    it "passes a test" $
-      replay "test/recordings/renamePass/client.log"
-             "test/recordings/renamePass/server.log"
-             "test/recordings/renamePass"
-        `shouldReturn` True
-    it "fails a test" $
-      replay "test/recordings/documentSymbolFail/client.log"
-             "test/recordings/documentSymbolFail/server.log" 
-             "test/recordings/documentSymbolFail"
-        `shouldReturn` False
-
-  -- describe "file swapping" $ do
-  --   it "gets the base directory" $ do
-  --     h <- openFile "test/recordings/renamePass/client.log" ReadMode
-  --     msgs <- getAllMessages h
-  --     rootDir msgs `shouldBe` "/Users/luke/Desktop"
-  
-    -- it "gets builds a mapping of files" $ do
-    --   h <- openFile "test/recordings/renamePass/client.log" ReadMode
-    --   msgs <- getAllMessages h
-    --   let root = rootDir msgs
-    --   swapped <- swapFiles root "test/recordings/renamePass/" msgs
-    --   let (Just n) = decode (swapped !! 3) :: Maybe LSP.DidOpenNotification
-
-    --   cd <- getCurrentDirectory
-
-    --   n .^ params . uri `shouldBe` LSP.uriFromFilePath (cd </> "test/recordings/renamePass/")
+main = hspec $
+  describe "replay" $
+    it "passes a replay" $
+      replaySession "test/recordings/renamePass" $ do
+        x <- sendNextRequest
+        liftIO $ print x
+        y <- sendNextRequest
+        liftIO $ print y
\ No newline at end of file