Skip to content

Commit 22beda4

Browse files
committed
more tests
1 parent d7c16ba commit 22beda4

File tree

8 files changed

+96
-23
lines changed

8 files changed

+96
-23
lines changed

plugins/hls-cabal-plugin/test/Main.hs

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -221,27 +221,16 @@ codeActionTests = testGroup "Code Actions"
221221
]) cas
222222
mapM_ executeCodeAction selectedCas
223223
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])
245234

246235
]
247236
where
@@ -250,4 +239,14 @@ codeActionTests = testGroup "Code Actions"
250239
InR action@CodeAction{_title} <- codeActions
251240
guard (_title == "Replace with " <> license)
252241
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
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
1-
packages: hidden-package
1+
packages: hidden-package
2+
hidden-package-dashed
3+
hidden-package-lib
4+
hidden-package-tests
5+
hidden-package-bench
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module Main (main) where
2+
3+
import Data.List.Split
4+
5+
main :: IO ()
6+
main = putStrLn "Test suite not yet implemented."
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
cabal-version: 2.4
2+
name: hidden-package-bench
3+
version: 0.1.0.0
4+
license: NONE
5+
author: George Gerasev
6+
maintainer: [email protected]
7+
build-type: Simple
8+
9+
common warnings
10+
ghc-options: -Wall
11+
12+
benchmark benchmark
13+
type: exitcode-stdio-1.0
14+
ghc-options: -threaded
15+
main-is: Main.hs
16+
hs-source-dirs: bench
17+
build-depends: base
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
cabal-version: 2.4
2+
name: hidden-package-lib
3+
version: 0.1.0.0
4+
license: NONE
5+
author: George Gerasev
6+
maintainer: [email protected]
7+
build-type: Simple
8+
9+
common warnings
10+
ghc-options: -Wall
11+
12+
library
13+
import: warnings
14+
exposed-modules: MyLib
15+
build-depends: base
16+
hs-source-dirs: src
17+
default-language: Haskell2010
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module MyLib (someFunc) where
2+
3+
import Data.List.Split
4+
5+
someFunc :: IO ()
6+
someFunc = putStrLn "someFunc"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
cabal-version: 2.4
2+
name: hidden-package-tests
3+
version: 0.1.0.0
4+
license: NONE
5+
author: George Gerasev
6+
maintainer: [email protected]
7+
build-type: Simple
8+
9+
common warnings
10+
ghc-options: -Wall
11+
12+
test-suite hidden-package-tests-test
13+
import: warnings
14+
default-language: Haskell2010
15+
type: exitcode-stdio-1.0
16+
hs-source-dirs: test
17+
main-is: Main.hs
18+
build-depends: base
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module Main (main) where
2+
3+
import Data.List.Split
4+
5+
main :: IO ()
6+
main = putStrLn "Test suite not yet implemented."

0 commit comments

Comments
 (0)