anitomata-aseprite-0.1.0.0: test-suite/Test/Anitomata/Aseprite/PreprocessorSpec.hs
{-# LANGUAGE TemplateHaskell #-}
module Test.Anitomata.Aseprite.PreprocessorSpec
( spec
) where
import Prelude
import Anitomata.Aseprite.Preprocessor (PreprocessorOpts(..), preprocessorWith)
import Data.FileEmbed (makeRelativeToProject)
import Language.Haskell.TH (Exp(LitE), Lit(StringL))
import System.IO (hClose)
import System.IO.Temp (withSystemTempFile)
import Test.Hspec (Spec, describe, it, parallel)
import Test.Hspec.Golden (defaultGolden)
atlasModule :: FilePath
atlasModule = $(LitE . StringL <$> makeRelativeToProject "test-suite/codegen/TestAtlas.hs")
spec :: Spec
spec = parallel do
describe "Anitomata.Aseprite.Preprocessor" do
it "works" do
withSystemTempFile "aseprite2haskell" \outputFilePath outputHandle -> do
hClose outputHandle
preprocessorWith PreprocessorOpts
{ preprocessorOptsOrigSourceFile = atlasModule
, preprocessorOptsOutputFile = outputFilePath
}
output <- readFile outputFilePath
pure $ defaultGolden "aseprite2haskell" output