main = hspec $ do
describe "Session" $ do
it "fails a test" $
- -- TODO: Catch the exception in haskell-lsp-test and provide nicer output
let session = runSession "hie" fullCaps "test/data/renamePass" $ do
openDoc "Desktop/simple.hs" "haskell"
skipMany loggingNotification
anyRequest
- in session `shouldThrow` anyException
+ in session `shouldThrow` anySessionException
it "initializeResponse" $ runSession "hie" fullCaps "test/data/renamePass" $ do
rsp <- initializeResponse
liftIO $ rsp ^. result `shouldNotBe` Nothing
describe "getCompletions" $
it "works" $ runSession "hie" def "test/data/renamePass" $ do
doc <- openDoc "Desktop/simple.hs" "haskell"
+
+ -- wait for module to be loaded
+ skipMany loggingNotification
+ noDiagnostics
+ noDiagnostics
+
item:_ <- getCompletions doc (Position 5 5)
liftIO $ do
item ^. label `shouldBe` "interactWithUser"
defs <- getDefinitions doc pos
liftIO $ defs `shouldBe` [Location (doc ^. uri) (mkRange 28 0 28 7)]
+ -- describe "getTypeDefinitions" $
+ -- it "works" $ runSession "hie" fullCaps "test/data/renamePass" $ do
+ -- doc <- openDoc "Desktop/simple.hs" "haskell"
+ -- let pos = Position 20 23 -- Quit value
+ -- defs <- getTypeDefinitions doc pos
+ -- liftIO $ defs `shouldBe` [Location (doc ^. uri) (mkRange 10 5 10 12)] -- Type definition
+
describe "waitForDiagnosticsSource" $
it "works" $ runSession "hie" fullCaps "test/data" $ do
openDoc "Error.hs" "haskell"