Versions |
0.1.0.0, 0.2.0.0, 0.2.1.0, 0.3.0.0, 0.4.0.0, 0.5.0.0, 0.5.0.1, 0.5.0.2, 0.5.1.0, 0.5.1.1, 0.5.1.2, 0.5.1.3, 0.5.1.4, 0.5.2.0, 0.5.2.1, 0.5.2.2, 0.5.2.3, 0.5.3.0, 0.5.4.0, 0.6.0.0, 0.6.1.0, 0.7.0.0, 0.8.0.0, 0.8.1.0, 0.8.2.0, 0.9.0.0, 0.9.0.0, 0.10.0.0, 0.10.1.0, 0.10.2.0, 0.10.3.0, 0.11.0.0, 0.11.0.1, 0.11.0.2, 0.11.0.3, 0.11.0.4, 0.11.0.5, 0.11.0.6, 0.11.0.7, 0.12.0.0, 0.13.0.0, 0.14.0.0, 0.14.0.1, 0.14.0.2, 0.14.0.3, 0.14.1.0, 0.15.0.0, 0.15.0.1, 0.16.0.0, 0.16.0.1, 0.17.0.0, 0.17.0.1, 0.17.0.2, 0.17.1.0 |
Change log |
ChangeLog.md |
Dependencies |
aeson, aeson-pretty, ansi-terminal, async, base (>=4.10 && <5), bytestring, conduit, conduit-parse (>=0.2 && <0.3), containers (>=0.5.9), data-default, Diff, directory, filepath, haskell-lsp (>=0.19 && <0.20), lens, mtl, parser-combinators, process (>=1.6), rope-utf16-splay, text, transformers, unix, unordered-containers, Win32 [details] |
License |
BSD-3-Clause |
Copyright |
2019 Luke Lau |
Author |
Luke Lau |
Maintainer |
luke_lau@icloud.com |
Category |
Testing |
Home page |
https://github.com/bubba/lsp-test#readme
|
Bug tracker |
https://github.com/bubba/lsp-test/issues
|
Source repo |
head: git clone https://github.com/bubba/lsp-test/ |
Uploaded |
by luke_ at 2019-12-15T20:10:12Z |
lsp-test
lsp-test is a functional testing framework for Language Server Protocol servers.
import Language.Haskell.LSP.Test
runSession "hie" fullCaps "proj/dir" $ do
doc <- openDoc "Foo.hs" "haskell"
skipMany anyNotification
symbols <- getDocumentSymbols doc
Examples
Unit tests with HSpec
describe "diagnostics" $
it "report errors" $ runSession "hie" fullCaps "test/data" $ do
openDoc "Error.hs" "haskell"
[diag] <- waitForDiagnosticsSource "ghcmod"
liftIO $ do
diag ^. severity `shouldBe` Just DsError
diag ^. source `shouldBe` Just "ghcmod"
Replaying captured session
replaySession "hie" "test/data/renamePass"
Parsing with combinators
skipManyTill loggingNotification publishDiagnosticsNotification
count 4 (message :: Session ApplyWorkspaceEditRequest)
anyRequest <|> anyResponse
Try out the example tests in the example
directory with cabal new-test
.
For more examples check the Wiki
Developing
The tests are integration tests, so make sure you have the following language servers installed and on your PATH:
- Check out a relatively recent version of the repo, or see
.travis.yml
to get the exact commit used for CI.
stack install
npm i -g javascript-typescript-langserver
Then run the tests with stack test
or cabal new-test
.
Troubleshooting
Seeing funny stuff when running lsp-test via stack? If your server is built upon Haskell tooling, keep in mind that stack sets some environment variables related to GHC, and you may want to unset them.