This commit is contained in:
Igor Ranieri 2025-09-21 08:19:01 +02:00
commit c9f61c4e06
16 changed files with 1366 additions and 0 deletions

34
test/Spec.hs Normal file
View file

@ -0,0 +1,34 @@
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -Wno-orphans #-}
import Test.Hspec
import Data.String (IsString (..))
import Data.Text (Text)
import Identifier (Identifier)
import Lexer
import Parser
import Types
main :: IO ()
main = hspec $ do
describe "Lexer" do
it "lexes" do
lexer "This is string" `shouldBe` undefined
describe "Parser" do
it "Bold" do
"__bold__" `shouldParseTo` (DocBold (DocString "bold"))
it "Emphasis" do
"/emphasis/" `shouldParseTo` (DocEmphasis (DocString "emphasis"))
shouldParseTo :: Text -> DocMarkup mod Identifier -> Expectation
shouldParseTo input ast = parseText input `shouldBe` ast
type Doc id = DocMarkup () id
instance IsString (Doc String) where
fromString = DocString
file :: IO String
file = readFile "test/markup.md"