@@ -25,6 +25,8 @@ import Outline (outlineTests)
25
25
import System.FilePath
26
26
import Test.Hls
27
27
import Utils
28
+ import Ide.Plugin.Cabal.CabalAdd (hiddenPackageSuggestion )
29
+ import Distribution.Utils.Generic (safeHead )
28
30
29
31
main :: IO ()
30
32
main = do
@@ -223,15 +225,84 @@ codeActionTests = testGroup "Code Actions"
223
225
pure ()
224
226
, runHaskellTestCaseSession " Code Actions - Can add hidden package" (" cabal-add-testdata" </> " cabal-add-exe" )
225
227
(generateHiddenPackageTestSession " cabal-add-exe.cabal" (" src" </> " Main.hs" ) " split" [253 ])
226
- , runHaskellTestCaseSession " Code Actions - Can add dashed hidden package" (" cabal-add-testdata" </> " cabal-add-dashed" )
227
- (generateHiddenPackageTestSession " cabal-add-dashed.cabal" (" src" </> " Main.hs" ) " ghc-boot" [260 ])
228
228
, runHaskellTestCaseSession " Code Actions - Can add hidden package to a library" (" cabal-add-testdata" </> " cabal-add-lib" )
229
229
(generateHiddenPackageTestSession " cabal-add-lib.cabal" (" src" </> " MyLib.hs" ) " split" [348 ])
230
230
, runHaskellTestCaseSession " Code Actions - Can add hidden package to a test" (" cabal-add-testdata" </> " cabal-add-tests" )
231
231
(generateHiddenPackageTestSession " cabal-add-tests.cabal" (" test" </> " Main.hs" ) " split" [478 ])
232
232
, runHaskellTestCaseSession " Code Actions - Can add hidden package to a benchmark" (" cabal-add-testdata" </> " cabal-add-bench" )
233
233
(generateHiddenPackageTestSession " cabal-add-bench.cabal" (" bench" </> " Main.hs" ) " split" [403 ])
234
-
234
+ , testHiddenPackageSuggestions " Check CabalAdd's parser, no version"
235
+ [ " It is a member of the hidden package 'base'"
236
+ , " It is a member of the hidden package 'Blammo-wai'"
237
+ , " It is a member of the hidden package 'BlastHTTP'"
238
+ , " It is a member of the hidden package 'CC-delcont-ref-tf'"
239
+ , " It is a member of the hidden package '3d-graphics-examples'"
240
+ , " It is a member of the hidden package 'AAI'"
241
+ , " It is a member of the hidden package 'AWin32Console'"
242
+ ]
243
+ [ (" base" , T. empty)
244
+ , (" Blammo-wai" , T. empty)
245
+ , (" BlastHTTP" , T. empty)
246
+ , (" CC-delcont-ref-tf" , T. empty)
247
+ , (" 3d-graphics-examples" , T. empty)
248
+ , (" AAI" , T. empty)
249
+ , (" AWin32Console" , T. empty)
250
+ ]
251
+ , testHiddenPackageSuggestions " Check CabalAdd's parser, with version"
252
+ [ " It is a member of the hidden package 'base-0.1.0.0'"
253
+ , " It is a member of the hidden package 'Blammo-wai-0.11.0'"
254
+ , " It is a member of the hidden package 'BlastHTTP-2.6.4.3'"
255
+ , " It is a member of the hidden package 'CC-delcont-ref-tf-0.0.0.2'"
256
+ , " It is a member of the hidden package '3d-graphics-examples-1.1.6'"
257
+ , " It is a member of the hidden package 'AAI-0.1'"
258
+ , " It is a member of the hidden package 'AWin32Console-1.19.1'"
259
+ ]
260
+ [ (" base" ," 0.1.0.0" )
261
+ , (" Blammo-wai" , " 0.11.0" )
262
+ , (" BlastHTTP" , " 2.6.4.3" )
263
+ , (" CC-delcont-ref-tf" , " 0.0.0.2" )
264
+ , (" 3d-graphics-examples" , " 1.1.6" )
265
+ , (" AAI" , " 0.1" )
266
+ , (" AWin32Console" , " 1.19.1" )
267
+ ]
268
+ , testHiddenPackageSuggestions " Check CabalAdd's parser, no version, unicode comma"
269
+ [ " It is a member of the hidden package \8216base\8217"
270
+ , " It is a member of the hidden package \8216Blammo-wai\8217"
271
+ , " It is a member of the hidden package \8216BlastHTTP\8217"
272
+ , " It is a member of the hidden package \8216CC-delcont-ref-tf\8217"
273
+ , " It is a member of the hidden package \8216AAI\8217"
274
+ , " It is a member of the hidden package \8216AWin32Console\8217"
275
+ ]
276
+ [ (" base" , T. empty)
277
+ , (" Blammo-wai" , T. empty)
278
+ , (" BlastHTTP" , T. empty)
279
+ , (" CC-delcont-ref-tf" , T. empty)
280
+ , (" AAI" , T. empty)
281
+ , (" AWin32Console" , T. empty)
282
+ ]
283
+ , testHiddenPackageSuggestions " Check CabalAdd's parser, with version, unicode comma"
284
+ [ " It is a member of the hidden package \8216base-0.1.0.0\8217"
285
+ , " It is a member of the hidden package \8216Blammo-wai-0.11.0\8217"
286
+ , " It is a member of the hidden package \8216BlastHTTP-2.6.4.3\8217"
287
+ , " It is a member of the hidden package \8216CC-delcont-ref-tf-0.0.0.2\8217"
288
+ , " It is a member of the hidden package \8216AAI-0.1\8217"
289
+ , " It is a member of the hidden package \8216AWin32Console-1.19.1\8217"
290
+ ]
291
+ [ (" base" ," 0.1.0.0" )
292
+ , (" Blammo-wai" , " 0.11.0" )
293
+ , (" BlastHTTP" , " 2.6.4.3" )
294
+ , (" CC-delcont-ref-tf" , " 0.0.0.2" )
295
+ , (" AAI" , " 0.1" )
296
+ , (" AWin32Console" , " 1.19.1" )
297
+ ]
298
+ , expectFailBecause " TODO fix regex for these cases" $
299
+ testHiddenPackageSuggestions " Check CabalAdd's parser, with version, unicode comma"
300
+ [ " It is a member of the hidden package \82163d-graphics-examples\8217"
301
+ , " It is a member of the hidden package \82163d-graphics-examples-1.1.6\8217"
302
+ ]
303
+ [ (" 3d-graphics-examples" , T. empty)
304
+ , (" 3d-graphics-examples" , " 1.1.6" )
305
+ ]
235
306
]
236
307
where
237
308
getLicenseAction :: T. Text -> [Command |? CodeAction ] -> [CodeAction ]
@@ -250,3 +321,10 @@ codeActionTests = testGroup "Code Actions"
250
321
_ <- skipManyTill anyMessage $ getDocumentEdit cabDoc -- Wait for the changes in cabal file
251
322
contents <- documentContents cabDoc
252
323
liftIO $ assertEqual (T. unpack dependency <> " isn't found in the cabal file" ) indicesRes (Text. indices dependency contents)
324
+ testHiddenPackageSuggestions :: String -> [T. Text ] -> [(T. Text , T. Text )] -> TestTree
325
+ testHiddenPackageSuggestions testTitle messages suggestions =
326
+ let suggestions' = map (safeHead . hiddenPackageSuggestion 1 ) messages
327
+ assertions = zipWith (@?=) suggestions' (map Just suggestions)
328
+ testNames = map (\ (f, s) -> " Check if " ++ T. unpack f ++ " -" ++ T. unpack s ++ " was parsed correctly" ) suggestions
329
+ test = testGroup testTitle $ zipWith testCase testNames assertions
330
+ in test
0 commit comments