summaryrefslogtreecommitdiff
path: root/pandoc-lua-engine/test/Tests
diff options
context:
space:
mode:
authorAlbert Krewinkel <albert@zeitkraut.de>2022-10-10 09:33:20 +0200
committerAlbert Krewinkel <albert@zeitkraut.de>2022-10-10 11:27:42 +0200
commita5ffaaa4136f11378c0c7741309edb9fd53e17d8 (patch)
treeafa29d609290f50cf752754cfca4a23075dc2781 /pandoc-lua-engine/test/Tests
parentd6fb8fb20fbb822d58cdfbde34961094c902a708 (diff)
Lua: support custom bytestring readers.
Diffstat (limited to 'pandoc-lua-engine/test/Tests')
-rw-r--r--pandoc-lua-engine/test/Tests/Lua/Reader.hs34
1 files changed, 34 insertions, 0 deletions
diff --git a/pandoc-lua-engine/test/Tests/Lua/Reader.hs b/pandoc-lua-engine/test/Tests/Lua/Reader.hs
new file mode 100644
index 000000000..16474bd91
--- /dev/null
+++ b/pandoc-lua-engine/test/Tests/Lua/Reader.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE LambdaCase #-}
+{- |
+Module : Tests.Lua.Reader
+Copyright : © 2022 Albert Krewinkel
+License : GPL-2.0-or-later
+Maintainer : Albert Krewinkel <pandoc@tarleb.com>
+
+Tests for custom Lua readers.
+-}
+module Tests.Lua.Reader (tests) where
+
+import Data.Char (chr)
+import Data.Default (Default (def))
+import Text.Pandoc.Class (runIOorExplode)
+import Text.Pandoc.Lua (readCustom)
+import Text.Pandoc.Readers (Reader (ByteStringReader, TextReader))
+import Test.Tasty (TestTree)
+import Test.Tasty.HUnit ((@?=), testCase)
+
+import qualified Data.ByteString.Lazy as BL
+import qualified Data.Text as T
+import qualified Text.Pandoc.Builder as B
+
+tests :: [TestTree]
+tests =
+ [ testCase "read binary to code block" $ do
+ input <- BL.readFile "bytestring.bin"
+ doc <- runIOorExplode $
+ readCustom "bytestring-reader.lua" >>= \case
+ ByteStringReader f -> f def input
+ TextReader {} -> error "Expected a bytestring reader"
+ let bytes = mconcat $ map (B.str . T.singleton . chr) [0..255]
+ doc @?= B.doc (B.plain bytes)
+ ]