Add getDefinitions
[opengl.git] / test / Test.hs
index 005018cab300db173de211ab013f4c03af872ced..0bd7965e6c28031b96b83d682420268c36fa420e 100644 (file)
@@ -237,8 +237,29 @@ main = hspec $ do
         , mkRange 75 6 75 22
         , mkRange 71 6 71 22
         ]
-    where mkRange sl sc el ec = Range (Position sl sc) (Position el ec)
 
+  describe "getDefinitions" $
+    it "works" $ runSession "hie --lsp" "test/data/renamePass" $ do
+      doc <- openDoc "Desktop/simple.hs" "haskell"
+      let pos = Position 49 25 -- addItem
+      defs <- getDefinitions doc pos
+      liftIO $ defs `shouldBe` [Location (doc ^. uri) (mkRange 28 0 28 7)]
+
+  describe "waitForDiagnosticsSource" $
+    it "works" $ runSession "hie --lsp" "test/data" $ do
+      openDoc "Error.hs" "haskell"
+      [diag] <- waitForDiagnosticsSource "ghcmod"
+      liftIO $ do
+        diag ^. severity `shouldBe` Just DsError
+        diag ^. source `shouldBe` Just "ghcmod"
+
+  describe "rename" $
+    it "works" $ runSession "hie --lsp" "test/data" $ do
+      doc <- openDoc "Rename.hs" "haskell"
+      rename doc (Position 1 0) "bar"
+      documentContents doc >>= liftIO . shouldBe "main = bar\nbar = return 42\n"
+
+mkRange sl sc el ec = Range (Position sl sc) (Position el ec)
 
 didChangeCaps :: ClientCapabilities
 didChangeCaps = def { _workspace = Just workspaceCaps }