@@ -212,6 +212,7 @@ codeActionTests :: TestTree
212
212
codeActionTests = testGroup " code actions"
213
213
[ renameActionTests
214
214
, typeWildCardActionTests
215
+ , removeImportTests
215
216
]
216
217
217
218
renameActionTests :: TestTree
@@ -360,6 +361,34 @@ typeWildCardActionTests = testGroup "type wildcard actions"
360
361
liftIO $ expectedContentAfterAction @=? contentAfterAction
361
362
]
362
363
364
+ removeImportTests :: TestTree
365
+ removeImportTests = testGroup " remove import actions"
366
+ [ testSession " redundant" $ do
367
+ let contentA = T. unlines
368
+ [ " module ModuleA where"
369
+ ]
370
+ docA <- openDoc' " ModuleA.hs" " haskell" contentA
371
+ let contentB = T. unlines
372
+ [ " {-# OPTIONS_GHC -Wunused-imports #-}"
373
+ , " module ModuleB where"
374
+ , " import ModuleA"
375
+ , " stuffB = 123"
376
+ ]
377
+ docB <- openDoc' " ModuleB.hs" " haskell" contentB
378
+ _ <- waitForDiagnostics
379
+ [CACodeAction action@ CodeAction { _title = actionTitle }]
380
+ <- getCodeActions docB (Range (Position 2 0 ) (Position 2 5 ))
381
+ liftIO $ " Remove import" @=? actionTitle
382
+ executeCodeAction action
383
+ contentAfterAction <- documentContents docB
384
+ let expectedContentAfterAction = T. unlines
385
+ [ " {-# OPTIONS_GHC -Wunused-imports #-}"
386
+ , " module ModuleB where"
387
+ , " stuffB = 123"
388
+ ]
389
+ liftIO $ expectedContentAfterAction @=? contentAfterAction
390
+ ]
391
+
363
392
----------------------------------------------------------------------
364
393
-- Utils
365
394
0 commit comments