packages feed

publish-2.1.6: tests/CheckTableProperties.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE ScopedTypeVariables #-}

module CheckTableProperties (
    checkTableProperties,
) where

import Core.Text
import PandocToMarkdown (
    tableToMarkdown,
 )
import Test.Hspec
import Text.Pandoc

checkTableProperties :: Spec
checkTableProperties = do
    describe "Table rendering code" $ do
        it "Header rows format" $
            let result =
                    tableToMarkdown
                        ("", [], [])
                        ( Caption
                            Nothing
                            []
                        )
                        [ (AlignRight, ColWidthDefault)
                        , (AlignCenter, ColWidthDefault)
                        , (AlignDefault, ColWidth 0.5)
                        ]
                        ( TableHead
                            ("", [], [])
                            [ Row
                                ("", [], [])
                                [ Cell
                                    ("", [], [])
                                    AlignDefault
                                    (RowSpan 1)
                                    (ColSpan 1)
                                    [Plain [Str "First"]]
                                , Cell
                                    ("", [], [])
                                    AlignDefault
                                    (RowSpan 1)
                                    (ColSpan 1)
                                    [Plain [Str "Second"]]
                                , Cell
                                    ("", [], [])
                                    AlignDefault
                                    (RowSpan 1)
                                    (ColSpan 1)
                                    [Plain [Str "Third"]]
                                ]
                            ]
                        )
                        [ ( TableBody
                                ("", [], [])
                                (RowHeadColumns 0)
                                []
                                [ Row
                                    ("", [], [])
                                    [ Cell
                                        ("", [], [])
                                        AlignDefault
                                        (RowSpan 1)
                                        (ColSpan 1)
                                        [Plain [Str "1"]]
                                    , Cell
                                        ("", [], [])
                                        AlignDefault
                                        (RowSpan 1)
                                        (ColSpan 1)
                                        [Plain [Str "2"]]
                                    , Cell
                                        ("", [], [])
                                        AlignDefault
                                        (RowSpan 1)
                                        (ColSpan 1)
                                        [Plain [Str "3"]]
                                    ]
                                ]
                          )
                        ]
                        ( TableFoot
                            ("", [], [])
                            []
                        )
             in do
                    result
                        `shouldBe` [quote|
| First | Second | Third |
|-------:|:------:|---------------------------------------|
| 1 | 2 | 3 |
            |]