@@ -6,15 +6,18 @@ module Progress (tests) where
66import Control.Applicative.Combinators
77import Control.Lens hiding ((.=) )
88import Control.Monad.IO.Class
9+ import Data.Default
10+ import Ide.Plugin.Config
911import Language.Haskell.LSP.Test
1012import Language.Haskell.LSP.Types
1113import qualified Language.Haskell.LSP.Types.Lens as L
1214import Language.Haskell.LSP.Types.Capabilities
1315import Test.Hls.Util
1416import Test.Tasty
17+ import Test.Tasty.ExpectedFailure (ignoreTestBecause )
1518import Test.Tasty.HUnit
1619import Data.Text (Text )
17- import Data.Aeson (encode , decode , object , Value , (.=) )
20+ import Data.Aeson (encode , decode , object , toJSON , Value , (.=) )
1821import Data.Maybe (fromJust )
1922import Data.List (delete )
2023
@@ -46,6 +49,14 @@ tests = testGroup "window/workDoneProgress" [
4649 expectProgressReports [" Setting up testdata (for Format.hs)" , " Processing" ]
4750 _ <- sendRequest TextDocumentFormatting $ DocumentFormattingParams doc (FormattingOptions 2 True ) Nothing
4851 expectProgressReports [" Formatting Format.hs" ]
52+ , ignoreTestBecause " no liquid Haskell support" $
53+ testCase " liquid haskell plugin sends progress notifications" $ do
54+ runSession hlsCommand progressCaps " test/testdata" $ do
55+ doc <- openDoc " liquid/Evens.hs" " haskell"
56+ let config = def { liquidOn = True , hlintOn = False }
57+ sendNotification WorkspaceDidChangeConfiguration (DidChangeConfigurationParams (toJSON config))
58+ sendNotification TextDocumentDidSave (DidSaveTextDocumentParams doc)
59+ expectProgressReports [" Running Liquid Haskell on Evens.hs" ]
4960 ]
5061
5162formatLspConfig :: Value -> Value
0 commit comments