@@ -221,27 +221,16 @@ codeActionTests = testGroup "Code Actions"
221
221
]) cas
222
222
mapM_ executeCodeAction selectedCas
223
223
pure ()
224
- , runHaskellTestCaseSession " Code Actions - Can add hidden package" (" cabal-add-testdata" </> " hidden-package" ) $ do
225
- hsdoc <- openDoc (" src" </> " Main.hs" ) " haskell"
226
- cabDoc <- openDoc " hidden-package.cabal" " cabal"
227
- _ <- waitForDiagnosticsFrom hsdoc
228
- cas <- Maybe. mapMaybe (^? _R) <$> getAllCodeActions hsdoc
229
- let selectedCas = filter (\ ca -> " Add dependency" `T.isPrefixOf` (ca ^. L. title)) cas
230
- mapM_ executeCodeAction selectedCas
231
- _ <- skipManyTill anyMessage $ getDocumentEdit cabDoc -- Wait for the changes in cabal file
232
- contents <- documentContents cabDoc
233
- liftIO $ assertEqual " Split isn't found in the cabal file" (Text. indices " split" contents) [256 ]
234
- , runHaskellTestCaseSession " Code Actions - Can add dashed hidden package" (" cabal-add-testdata" </> " hidden-package-dashed" ) $ do
235
- hsdoc <- openDoc (" src" </> " Main.hs" ) " haskell"
236
- cabDoc <- openDoc " hidden-package-dashed.cabal" " cabal"
237
- _ <- waitForDiagnosticsFrom hsdoc
238
- cas <- Maybe. mapMaybe (^? _R) <$> getAllCodeActions hsdoc
239
- let selectedCas = filter (\ ca -> " Add dependency" `T.isPrefixOf` (ca ^. L. title)) cas
240
- mapM_ executeCodeAction selectedCas
241
- _ <- skipManyTill anyMessage $ getDocumentEdit cabDoc -- Wait for the changes in cabal file
242
- contents <- documentContents cabDoc
243
- liftIO $ assertEqual " hls-plugin-api isn't found in the cabal file" (Text. indices " hls-plugin-api" contents) [263 ]
244
-
224
+ , runHaskellTestCaseSession " Code Actions - Can add hidden package" (" cabal-add-testdata" </> " hidden-package" )
225
+ (generateHiddenPackageTestSession " hidden-package.cabal" (" src" </> " Main.hs" ) " split" [256 ])
226
+ , runHaskellTestCaseSession " Code Actions - Can add dashed hidden package" (" cabal-add-testdata" </> " hidden-package-dashed" )
227
+ (generateHiddenPackageTestSession " hidden-package-dashed.cabal" (" src" </> " Main.hs" ) " hls-plugin-api" [263 ])
228
+ , runHaskellTestCaseSession " Code Actions - Can add hidden package to a library" (" cabal-add-testdata" </> " hidden-package-lib" )
229
+ (generateHiddenPackageTestSession " hidden-package-lib.cabal" (" src" </> " MyLib.hs" ) " split" [256 ])
230
+ , runHaskellTestCaseSession " Code Actions - Can add hidden package to a test" (" cabal-add-testdata" </> " hidden-package-tests" )
231
+ (generateHiddenPackageTestSession " hidden-package-tests.cabal" (" test" </> " Main.hs" ) " split" [256 ])
232
+ , runHaskellTestCaseSession " Code Actions - Can add hidden package to a bench" (" cabal-add-testdata" </> " hidden-package-bench" )
233
+ (generateHiddenPackageTestSession " hidden-package-bench.cabal" (" bench" </> " Main.hs" ) " split" [256 ])
245
234
246
235
]
247
236
where
@@ -250,4 +239,14 @@ codeActionTests = testGroup "Code Actions"
250
239
InR action@ CodeAction {_title} <- codeActions
251
240
guard (_title == " Replace with " <> license)
252
241
pure action
253
-
242
+ generateHiddenPackageTestSession :: FilePath -> FilePath -> T. Text -> [Int ] -> Session ()
243
+ generateHiddenPackageTestSession cabalFile haskellFile dependency indicesRes = do
244
+ hsdoc <- openDoc haskellFile " haskell"
245
+ cabDoc <- openDoc cabalFile " cabal"
246
+ _ <- waitForDiagnosticsFrom hsdoc
247
+ cas <- Maybe. mapMaybe (^? _R) <$> getAllCodeActions hsdoc
248
+ let selectedCas = filter (\ ca -> " Add dependency" `T.isPrefixOf` (ca ^. L. title)) cas
249
+ mapM_ executeCodeAction selectedCas
250
+ _ <- skipManyTill anyMessage $ getDocumentEdit cabDoc -- Wait for the changes in cabal file
251
+ contents <- documentContents cabDoc
252
+ liftIO $ assertEqual (T. unpack dependency <> " isn't found in the cabal file" ) (Text. indices dependency contents) indicesRes
0 commit comments