{-# 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