summaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorAkos Marton <makos999@protonmail.ch>2020-02-15 12:24:11 +0100
committerGitHub <noreply@github.com>2020-02-15 12:24:11 +0100
commitab85690eb35dec46c8eb80a930337249f34b9f80 (patch)
tree59a73cef8a09bcd28269a58a50642bd8ca533382 /tests
parent41dcda2a34b5f12f3fa91480bfe2aaeb4afa90e5 (diff)
downloadstylish-haskell-ab85690eb35dec46c8eb80a930337249f34b9f80.tar.gz
Add -r flag to recursively find Haskell files
Diffstat (limited to 'tests')
-rw-r--r--tests/Language/Haskell/Stylish/Tests.hs47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/Language/Haskell/Stylish/Tests.hs b/tests/Language/Haskell/Stylish/Tests.hs
index 59ca92b..e7faa9b 100644
--- a/tests/Language/Haskell/Stylish/Tests.hs
+++ b/tests/Language/Haskell/Stylish/Tests.hs
@@ -5,6 +5,9 @@ module Language.Haskell.Stylish.Tests
--------------------------------------------------------------------------------
+import Data.List (sort)
+import System.Directory (createDirectory)
+import System.FilePath (normalise, (</>))
import Test.Framework (Test, testGroup)
import Test.Framework.Providers.HUnit (testCase)
import Test.HUnit (Assertion, (@?=))
@@ -21,6 +24,9 @@ tests = testGroup "Language.Haskell.Stylish.Step.Tabs.Tests"
[ testCase "case 01" case01
, testCase "case 02" case02
, testCase "case 03" case03
+ , testCase "case 04" case04
+ , testCase "case 05" case05
+ , testCase "case 06" case06
]
@@ -68,3 +74,44 @@ case03 = (@?= result) =<< format Nothing (Just fileLocation) input
"Language.Haskell.Stylish.Parse.parseModule: could not parse " <>
fileLocation <>
": ParseFailed (SrcLoc \"<unknown>.hs\" 2 1) \"Parse error: EOF\""
+
+
+--------------------------------------------------------------------------------
+-- | When providing current dir including folders and files.
+case04 :: Assertion
+case04 = withTestDirTree $ do
+ createDirectory aDir >> writeFile c fileCont
+ mapM_ (flip writeFile fileCont) fs
+ result <- findHaskellFiles False input
+ sort result @?= (sort $ map normalise expected)
+ where
+ input = c : fs
+ fs = ["b.hs", "a.hs"]
+ c = aDir </> "c.hs"
+ aDir = "aDir"
+ expected = ["a.hs", "b.hs", c]
+ fileCont = ""
+
+
+--------------------------------------------------------------------------------
+-- | When the input item is not file, do not recurse it.
+case05 :: Assertion
+case05 = withTestDirTree $ do
+ mapM_ (flip writeFile "") input
+ result <- findHaskellFiles False input
+ result @?= expected
+ where
+ input = ["b.hs"]
+ expected = map normalise input
+
+
+--------------------------------------------------------------------------------
+-- | Empty input should result in empty output.
+case06 :: Assertion
+case06 = withTestDirTree $ do
+ mapM_ (flip writeFile "") input
+ result <- findHaskellFiles False input
+ result @?= expected
+ where
+ input = []
+ expected = input