library(testthat)
library(gluedown)
library(glue)
library(rvest)
test_that("md_setext errors at levels greater than 2", {
expect_error(md_setext("Foo", 3))
})
test_that("md_setext creates
and tags (ex. 50)", {
# https://github.github.com/gfm/#example-50
lines <- md_setext("Foo _bar_", 1:2)
for (i in seq_along(lines)) {
node <- md_convert(lines) %>%
find_nodes(paste0("h", i)) %>%
html_text(trim = TRUE)
expect_equal(node, "Foo bar")
}
})
test_that("md_setext can create with newlines (ex. 51)", {
# https://github.github.com/gfm/#example-51
lines <- md_setext(paste("Foo", md_italic("bar\nbaz")))
node <- md_convert(lines) %>% find_nodes("h1")
expect_full(node)
})
test_that("md_setext underline can be any length (ex. 52)", {
# https://github.github.com/gfm/#example-53
lines <- md_setext("Foo", level = 2:1, width = c(25, 1))
for (i in rev(seq_along(lines))) {
node <- md_convert(lines) %>%
find_nodes(paste0("h", i)) %>%
html_text(trim = TRUE)
expect_equal(node, "Foo")
}
})
test_that("md_setext can be indented and not line up (ex. 54)", {
# https://github.github.com/gfm/#example-54
line <- md_setext(" Foo", level = 2, width = 3)
node <- md_convert(line) %>%
find_nodes("h2") %>%
html_text(trim = TRUE)
expect_equal(node, "Foo")
line <- md_setext(" Foo", level = 2, width = 5)
node <- md_convert(line) %>%
find_nodes("h2") %>%
html_text(trim = TRUE)
expect_equal(node, "Foo")
})
test_that("md_setext errors if an empty heading is used (ex. 67)", {
# https://github.github.com/gfm/#example-67
expect_error(md_setext(""))
})