34 lines
806 B
Haskell
34 lines
806 B
Haskell
{-# 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"
|