strong-path-1.0.1.0: test/StrongPath/InternalTest.hs
module StrongPath.InternalTest where
import StrongPath.Internal
( RelPathPrefix (..),
extractRelPathPrefix,
)
import qualified System.FilePath as FP
import qualified System.FilePath.Posix as FPP
import qualified System.FilePath.Windows as FPW
import Test.Hspec
import Test.Tasty (TestTree)
import Test.Tasty.Hspec (testSpec)
test_StrongPathInternal :: IO TestTree
test_StrongPathInternal = testSpec "StrongPath.Internal" $ do
describe "extractRelPathPrefix correctly extracts prefix from rel FilePath." $ do
it "when path starts with multiple ../" $ do
extractRelPathPrefix [FPP.pathSeparator] "../../" `shouldBe` (ParentDir 2, "")
extractRelPathPrefix [FPP.pathSeparator] "../.." `shouldBe` (ParentDir 2, "")
extractRelPathPrefix [FP.pathSeparator] ".." `shouldBe` (ParentDir 1, "")
extractRelPathPrefix [FP.pathSeparator, FPP.pathSeparator] "../../../a/b" `shouldBe` (ParentDir 3, "a/b")
extractRelPathPrefix [FPW.pathSeparator] "..\\a\\b" `shouldBe` (ParentDir 1, "a\\b")
it "when path does not start with ../" $ do
extractRelPathPrefix [FPP.pathSeparator] "a/b" `shouldBe` (NoPrefix, "a/b")
extractRelPathPrefix [FP.pathSeparator] "b" `shouldBe` (NoPrefix, "b")
extractRelPathPrefix [FP.pathSeparator] "." `shouldBe` (NoPrefix, ".")