elm-pages-v3-beta/examples/docs/tests/TableOfContentsTests.elm
2021-05-06 16:20:04 -07:00

39 lines
1.6 KiB
Elm

module TableOfContentsTests exposing (..)
import Expect exposing (Expectation)
import Fuzz exposing (Fuzzer, int, list, string)
import Markdown.Block as Block exposing (..)
import TableOfContents exposing (Entry(..))
import Test exposing (..)
suite : Test
suite =
describe "table of contents"
[ test "flat" <|
\() ->
TableOfContents.buildToc
[ Heading H2 [ Text "Top-Level Item 1" ]
, Heading H2 [ Text "Top-Level Item 2" ]
, Heading H2 [ Text "Top-Level Item 3" ]
]
|> Expect.equal
[ Entry { anchorId = "top-level-item-1", level = 2, name = "Top-Level Item 1" } []
, Entry { anchorId = "top-level-item-2", level = 2, name = "Top-Level Item 2" } []
, Entry { anchorId = "top-level-item-3", level = 2, name = "Top-Level Item 3" } []
]
, test "nested" <|
\() ->
TableOfContents.buildToc
[ Heading H2 [ Text "Top-Level Item 1" ]
, Heading H3 [ Text "Nested under 1" ]
, Heading H2 [ Text "Top-Level Item 3" ]
]
|> Expect.equal
[ Entry { anchorId = "top-level-item-1", level = 2, name = "Top-Level Item 1" }
[ Entry { anchorId = "nested-under-1", level = 3, name = "Nested under 1" } []
]
, Entry { anchorId = "top-level-item-3", level = 2, name = "Top-Level Item 3" } []
]
]