diff options
author | Alexander Batischev <eual.jp@gmail.com> | 2020-12-07 09:21:41 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-07 09:21:41 +0300 |
commit | 478a2e8590c160d0ca657bfbd8e5c852034f651f (patch) | |
tree | 41c66fdc4d3567659a88271a38ceb454b5706ad1 /tests/Hakyll/Web/Pandoc/Biblio | |
parent | 77afcbc2937a4ee5db9666c1f3e0c090914d3980 (diff) | |
download | hakyll-478a2e8590c160d0ca657bfbd8e5c852034f651f.tar.gz |
Add golden test for Pandoc.Biblio (#827)
Diffstat (limited to 'tests/Hakyll/Web/Pandoc/Biblio')
-rw-r--r-- | tests/Hakyll/Web/Pandoc/Biblio/Tests.hs | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/Hakyll/Web/Pandoc/Biblio/Tests.hs b/tests/Hakyll/Web/Pandoc/Biblio/Tests.hs new file mode 100644 index 0000000..fb98f08 --- /dev/null +++ b/tests/Hakyll/Web/Pandoc/Biblio/Tests.hs @@ -0,0 +1,66 @@ +-------------------------------------------------------------------------------- +{-# LANGUAGE OverloadedStrings #-} +module Hakyll.Web.Pandoc.Biblio.Tests + ( tests + ) where + + +-------------------------------------------------------------------------------- +import System.FilePath ((</>)) +import Test.Tasty (TestTree, testGroup) +import Test.Tasty.Golden (goldenVsString) +import qualified Data.ByteString as B +import qualified Data.ByteString.Lazy as LBS + + +-------------------------------------------------------------------------------- +import Hakyll +import Hakyll.Core.Runtime +import Hakyll.Web.Pandoc.Biblio +import qualified Hakyll.Core.Logger as Logger +import TestSuite.Util + + +-------------------------------------------------------------------------------- +tests :: TestTree +tests = testGroup "Hakyll.Web.Pandoc.Biblio.Tests" $ + [ goldenTest01 + ] + +-------------------------------------------------------------------------------- +goldenTestsDataDir :: FilePath +goldenTestsDataDir = "tests/data/biblio" + +-------------------------------------------------------------------------------- +goldenTest01 :: TestTree +goldenTest01 = + goldenVsString + "biblio01" + (goldenTestsDataDir </> "biblio01.golden") + (do + -- Code lifted from https://github.com/jaspervdj/hakyll-citeproc-example. + logger <- Logger.new Logger.Error + let config = testConfiguration { providerDirectory = goldenTestsDataDir } + _ <- run config logger $ do + let myPandocBiblioCompiler = do + csl <- load "chicago.csl" + bib <- load "refs.bib" + getResourceBody >>= + readPandocBiblio defaultHakyllReaderOptions csl bib >>= + return . writePandoc + + match "default.html" $ compile templateCompiler + match "chicago.csl" $ compile cslCompiler + match "refs.bib" $ compile biblioCompiler + match "page.markdown" $ do + route $ setExtension "html" + compile $ + myPandocBiblioCompiler >>= + loadAndApplyTemplate "default.html" defaultContext + + output <- fmap LBS.fromStrict $ B.readFile $ + destinationDirectory testConfiguration </> "page.html" + + cleanTestEnv + + return output) |