X-Git-Url: http://git.lukelau.me/?a=blobdiff_plain;f=test%2FTest.hs;h=5e7e0752032dca5df0da393c7a1a42f27cb1608f;hb=eab96ad6f11e0f76380d9cc600724f94c4523915;hp=08c21be300e45fc9b87e766750399fc8b62d5329;hpb=e0926c045ccd5444f3112cb231cc3590c600d48d;p=opengl.git diff --git a/test/Test.hs b/test/Test.hs index 08c21be..5e7e075 100644 --- a/test/Test.hs +++ b/test/Test.hs @@ -18,8 +18,8 @@ import GHC.Generics import Language.Haskell.LSP.Messages import Language.Haskell.LSP.Test import Language.Haskell.LSP.Test.Replay -import Language.Haskell.LSP.Types.Capabilities -import Language.Haskell.LSP.Types as LSP hiding (capabilities, message) +import Language.Haskell.LSP.Types as LSP hiding (capabilities, message, rename, applyEdit) +import Language.Haskell.LSP.Types.Capabilities as LSP import System.Timeout {-# ANN module ("HLint: ignore Reduce duplication" :: String) #-} @@ -113,7 +113,7 @@ main = hspec $ do selector _ = False sesh = do doc <- openDoc "Desktop/simple.hs" "haskell" - sendRequest' TextDocumentDocumentSymbol (DocumentSymbolParams doc) + sendRequest TextDocumentDocumentSymbol (DocumentSymbolParams doc) skipMany anyNotification message :: Session RenameResponse -- the wrong type in runSession "hie --lsp" fullCaps "test/data/renamePass" sesh @@ -134,7 +134,7 @@ main = hspec $ do noDiagnostics - (fooSymbol:_) <- getDocumentSymbols doc + Right (fooSymbol:_) <- getDocumentSymbols doc liftIO $ do fooSymbol ^. name `shouldBe` "foo" @@ -149,7 +149,7 @@ main = hspec $ do (Position 1 14) "Redundant bracket" reqParams = ExecuteCommandParams "applyrefact:applyOne" (Just (List [args])) - sendRequest_ WorkspaceExecuteCommand reqParams + request_ WorkspaceExecuteCommand reqParams editReq <- message :: Session ApplyWorkspaceEditRequest liftIO $ do @@ -172,18 +172,25 @@ main = hspec $ do (Position 1 14) "Redundant bracket" reqParams = ExecuteCommandParams "applyrefact:applyOne" (Just (List [args])) - sendRequest_ WorkspaceExecuteCommand reqParams + request_ WorkspaceExecuteCommand reqParams contents <- getDocumentEdit doc liftIO $ contents `shouldBe` "main :: IO Int\nmain = return 42\n" noDiagnostics + describe "getCodeActions" $ + it "works" $ runSession "hie" fullCaps "test/data/refactor" $ do + doc <- openDoc "Main.hs" "haskell" + waitForDiagnostics + [CACodeAction action] <- getCodeActions doc (Range (Position 1 14) (Position 1 18)) + liftIO $ action ^. title `shouldBe` "Apply hint:Redundant bracket" + describe "getAllCodeActions" $ it "works" $ runSession "hie --lsp" fullCaps "test/data/refactor" $ do doc <- openDoc "Main.hs" "haskell" _ <- waitForDiagnostics actions <- getAllCodeActions doc liftIO $ do - let [CommandOrCodeActionCodeAction action] = actions + let [CACodeAction action] = actions action ^. title `shouldBe` "Apply hint:Redundant bracket" action ^. command . _Just . command `shouldSatisfy` T.isSuffixOf ":applyrefact:applyOne" @@ -195,13 +202,12 @@ main = hspec $ do noDiagnostics - (mainSymbol:_) <- getDocumentSymbols doc + Left (mainSymbol:_) <- getDocumentSymbols doc liftIO $ do mainSymbol ^. name `shouldBe` "main" mainSymbol ^. kind `shouldBe` SkFunction - mainSymbol ^. location . range `shouldBe` Range (Position 3 0) (Position 3 4) - mainSymbol ^. containerName `shouldBe` Nothing + mainSymbol ^. range `shouldBe` Range (Position 3 0) (Position 5 30) describe "applyEdit" $ do it "increments the version" $ runSession "hie --lsp" docChangesCaps "test/data/renamePass" $ do