Skip to content

Commit 23d5b54

Browse files
committed
Fix flaky tests
1 parent 01a3d31 commit 23d5b54

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

hls-test-utils/src/Test/Hls.hs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ module Test.Hls
1919
runSessionWithServerFormatter,
2020
runSessionWithServer',
2121
waitForProgressDone,
22+
waitForAllProgressDone,
2223
PluginDescriptor,
2324
IdeState,
2425
)
@@ -195,3 +196,15 @@ waitForProgressDone = loop
195196
_ -> Nothing
196197
done <- null <$> getIncompleteProgressSessions
197198
unless done loop
199+
200+
-- | Wait for all progress to be done
201+
-- Needs at least one progress done notification to return
202+
waitForAllProgressDone :: Session ()
203+
waitForAllProgressDone = loop
204+
where
205+
loop = do
206+
~() <- skipManyTill anyMessage $ satisfyMaybe $ \case
207+
FromServerMess SProgress (NotificationMessage _ _ (ProgressParams _ (End _))) -> Just ()
208+
_ -> Nothing
209+
done <- null <$> getIncompleteProgressSessions
210+
unless done loop

plugins/hls-tactics-plugin/test/Utils.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ mkTest name fp line col ts = it name $ do
8585
runSessionForTactics $ do
8686
doc <- openDoc (fp <.> "hs") "haskell"
8787
_ <- waitForDiagnostics
88+
waitForAllProgressDone
8889
actions <- getCodeActions doc $ pointRange line col
8990
let titles = mapMaybe codeActionTitle actions
9091
for_ ts $ \(f, tc, var) -> do

0 commit comments

Comments
 (0)