@@ -8,28 +8,25 @@ module Main
88 ( main
99 ) where
1010
11- import Control.Lens (_Just , folded , preview ,
12- toListOf , view , (^..) )
13- import Data.Aeson (Value (Object ), fromJSON ,
14- object , toJSON , (.=) )
15- import Data.Aeson.Types (Pair , Result (Success ))
16- import Data.List (isInfixOf )
17- import Data.List.Extra (nubOrdOn )
18- import qualified Data.Map as Map
11+ import Control.Lens (_Just , folded , preview , view , (^.) ,
12+ (^..) )
13+ import Data.Aeson (Value (Object ), fromJSON , object ,
14+ (.=) )
15+ import Data.Aeson.Types (Pair , Result (Success ))
16+ import Data.List (isInfixOf )
17+ import Data.List.Extra (nubOrdOn )
18+ import qualified Data.Map as Map
1919import Data.Row
20- import qualified Data.Text as T
21- import Ide.Plugin.Config (Config )
22- import qualified Ide.Plugin.Config as Plugin
23- import qualified Ide.Plugin.Eval as Eval
24- import Ide.Plugin.Eval.Types (EvalParams (.. ), Section (.. ),
25- testOutput )
26- import Ide.Types (IdePlugins (IdePlugins ))
27- import Language.LSP.Protocol.Lens (arguments , command , range ,
28- title )
29- import Language.LSP.Protocol.Message hiding (error )
30- import System.FilePath ((<.>) , (</>) )
20+ import qualified Data.Text as T
21+ import Ide.Plugin.Config (Config )
22+ import qualified Ide.Plugin.Config as Plugin
23+ import qualified Ide.Plugin.Eval as Eval
24+ import Ide.Plugin.Eval.Types (EvalParams (.. ), Section (.. ),
25+ testOutput )
26+ import Language.LSP.Protocol.Lens (command , range , title )
27+ import System.FilePath ((<.>) , (</>) )
3128import Test.Hls
32- import qualified Test.Hls.FileSystem as FS
29+ import qualified Test.Hls.FileSystem as FS
3330
3431main :: IO ()
3532main = defaultTestRunner tests
@@ -215,16 +212,17 @@ tests =
215212 , testCase " Interfaces are reused after Eval" $ do
216213 runSessionWithServerInTmpDir def evalPlugin (mkFs $ FS. directProjectMulti [" TLocalImport.hs" , " Util.hs" ]) $ do
217214 doc <- openDoc " TLocalImport.hs" " haskell"
218- waitForTypecheck doc
215+ _ <- waitForTypecheck doc
219216 lenses <- getCodeLenses doc
220- let ~ cmds@ [cmd] = lenses^.. folded. command. _Just
221- liftIO $ cmds^.. folded. title @?= [" Evaluate..." ]
217+ cmd <- liftIO $ case lenses^.. folded. command. _Just of
218+ [cmd] -> (cmd^. title @?= " Evaluate..." ) >> pure cmd
219+ cmds -> assertFailure $ " Expected a single command, got " <> show (length cmds)
222220
223221 executeCmd cmd
224222
225223 -- trigger a rebuild and check that dependency interfaces are not rebuilt
226224 changeDoc doc []
227- waitForTypecheck doc
225+ _ <- waitForTypecheck doc
228226 Right keys <- getLastBuildKeys
229227 let ifaceKeys = filter (" GetModIface" `T.isPrefixOf` ) keys
230228 liftIO $ ifaceKeys @?= []
0 commit comments