module Lentil.FileSpec where import Test.Hspec import Lentil.File -- File tests main :: IO () main = hspec spec bas :: String bas = "test/test-files/test-proj/" spec :: Spec spec = do describe "findIssues" $ do it "scans directories to find issues" $ findIssues [bas ++ ""] [] >>= \fiss -> length fiss `shouldBe` 5 it "allows to add specific folders" $ findIssues [bas ++ ""] [] >>= \fiss -> findIssues [bas ++ "fold-a/", bas ++ "fold-b", bas ++ "fold-c"] [] >>= \fiss2 -> length fiss `shouldBe` length fiss2 it "accepts filenames instead of dirs, too" $ findIssues [bas ++ "fold-a/foo1.hs"] [] >>= \fiss -> length fiss `shouldBe` 1 it "doesn't duplicate issues" $ findIssues [bas ++ "", bas ++ ""] [] >>= \fiss -> length fiss `shouldBe` 5 it "excludes some folders" $ findIssues [bas ++ ""] [bas ++ "fold-c/"] >>= \fiss -> length fiss `shouldBe` 2 it "excludes files" $ findIssues [bas ++ ""] [bas ++ "fold-a/foo1.hs"] >>= \fiss -> length fiss `shouldBe` 4 it "excludes subfolders" $ findIssues [bas ++ "fold-c/"] [bas ++ "fold-c/sub-fold/"] >>= \fiss -> length fiss `shouldBe` 1 it "doesn't crash on wrong file" $ findIssues [bas ++ "zxczd"] [] >>= \fiss -> length fiss `shouldBe` 0