Support haskell-lsp-0.22
[lsp-test.git] / test / Test.hs
index dc770d9205efc21e22147660380470316ed371a1..e38af42cf1b8de77c3ae025100d8cb32d9fb25f5 100644 (file)
@@ -7,6 +7,7 @@ import           Test.Hspec
 import           Data.Aeson
 import           Data.Default
 import qualified Data.HashMap.Strict as HM
+import           Data.Either
 import           Data.Maybe
 import qualified Data.Text as T
 import           Control.Applicative.Combinators
@@ -37,7 +38,7 @@ main = hspec $ do
         in session `shouldThrow` anySessionException
     it "initializeResponse" $ runSession "hie" fullCaps "test/data/renamePass" $ do
       rsp <- initializeResponse
-      liftIO $ rsp ^. result `shouldNotBe` Nothing
+      liftIO $ rsp ^. result `shouldSatisfy` isLeft
 
     it "runSessionWithConfig" $
       runSession "hie" didChangeCaps "test/data/renamePass" $ return ()
@@ -281,11 +282,18 @@ main = hspec $ do
         diag ^. severity `shouldBe` Just DsError
         diag ^. source `shouldBe` Just "bios"
 
-  describe "rename" $
-    it "works" $ runSession "hie" fullCaps "test/data" $ do
-      doc <- openDoc "Rename.hs" "haskell"
-      rename doc (Position 1 0) "bar"
-      documentContents doc >>= liftIO . shouldBe "main = bar\nbar = return 42\n"
+  describe "rename" $ do
+    it "works" $ pendingWith "HaRe not in hie-bios yet"
+    it "works on javascript" $
+      runSession "javascript-typescript-stdio" fullCaps "test/data/javascriptPass" $ do
+        doc <- openDoc "test.js" "javascript"
+        rename doc (Position 2 11) "bar"
+        documentContents doc >>= liftIO . (`shouldContain` "function bar()") . T.unpack
+
+    -- runSession "hie" fullCaps "test/data" $ do
+    --   doc <- openDoc "Rename.hs" "haskell"
+    --   rename doc (Position 1 0) "bar"
+    --   documentContents doc >>= liftIO . shouldBe "main = bar\nbar = return 42\n"
 
   describe "getHover" $
     it "works" $ runSession "hie" fullCaps "test/data/renamePass" $ do