import Data.Conduit.Parser
import Test.Hspec
+type TestSession = ConduitParser FromServerMessage IO
+
parsingSpec :: Spec
parsingSpec =
describe "diagnostics" $ do
it "get picked up" $ do
let source = yield testDiag
session = do
- diags <- publishDiagnosticsNotification :: ConduitParser FromServerMessage IO PublishDiagnosticsNotification
+ diags <- publishDiagnosticsNotification :: TestSession PublishDiagnosticsNotification
return $ diags ^. params . uri
runConduit (source .| runConduitParser session) `shouldReturn` Uri "foo"
it "get picked up after skipping others before" $ do
notTestDiag = NotLogMessage (NotificationMessage "2.0" WindowLogMessage (LogMessageParams MtLog "foo"))
source = yield notTestDiag >> yield testDiag
session = do
- diags <- skipManyTill anyNotification notification :: ConduitParser FromServerMessage IO PublishDiagnosticsNotification
+ diags <- skipManyTill anyNotification notification :: TestSession PublishDiagnosticsNotification
return $ diags ^. params . uri
runConduit (source .| runConduitParser session) `shouldReturn` Uri "foo"