packages feed

summoner-2.1.0.0: test/Test/Script.hs

module Test.Script
    ( scriptSpec
    ) where

import Test.Hspec (Spec, describe, it, shouldReturn)

import Summoner.Default (defaultGHC)
import Summoner.Settings (Tool (..))
import Summoner.Template.Script (scriptFile)

import qualified Data.Text as T

scriptSpec :: Spec
scriptSpec = describe "script golden tests" $ do
    it "correctly creates cabal script" $
        readScript "examples/cabalScript.hs" `shouldReturn` scriptFile defaultGHC Cabal
    it "correctly creates stack script" $
        readScript "examples/stackScript.hs" `shouldReturn` scriptFile defaultGHC Stack

-- | Read a script file, normalizing line endings (CRLF -> LF) for cross-platform compatibility
readScript :: FilePath -> IO Text
readScript path = T.filter (/= '\r') . decodeUtf8 <$> readFileBS path