test_that("is_pkgdown checks its inputs", { expect_snapshot(error = TRUE, { as_pkgdown(1) as_pkgdown(override = 1) }) }) test_that("package_vignettes() doesn't trip over directories", { dir <- withr::local_tempdir() dir_create(path(dir, "vignettes", "test.Rmd")) file_create(path(dir, "vignettes", "test2.Rmd")) expect_equal(as.character(package_vignettes(dir)$file_in), "vignettes/test2.Rmd") }) test_that("check_bootstrap_version() allows 3, 4 (with warning), and 5", { pkg <- local_pkgdown_site() expect_equal(check_bootstrap_version(3, pkg), 3) expect_snapshot(expect_equal(check_bootstrap_version(4, pkg), 5)) expect_equal(check_bootstrap_version(5, pkg), 5) }) test_that("check_bootstrap_version() gives informative error otherwise", { pkg <- local_pkgdown_site() expect_snapshot(check_bootstrap_version(1, pkg), error = TRUE) }) test_that("package_vignettes() moves vignettes/articles up one level", { dir <- withr::local_tempdir() dir_create(path(dir, "vignettes", "articles")) file_create(path(dir, "vignettes", "articles", "test.Rmd")) pkg_vig <- package_vignettes(dir) expect_equal(as.character(pkg_vig$file_out), "articles/test.html") expect_equal(pkg_vig$depth, 1L) }) test_that("package_vignettes() detects conflicts in final article paths", { dir <- withr::local_tempdir() dir_create(path(dir, "vignettes", "articles")) file_create(path(dir, "vignettes", "test.Rmd")) file_create(path(dir, "vignettes", "articles", "test.Rmd")) expect_error(package_vignettes(dir)) }) test_that("package_vignettes() sorts articles alphabetically by file name", { pkg <- local_pkgdown_site() pkg <- pkg_add_file(pkg, "vignettes/a.Rmd") pkg <- pkg_add_file(pkg, "vignettes/b.Rmd") pkg <- pkg_add_file(pkg, "vignettes/c.Rmd") expect_equal( path_file(pkg$vignettes$file_out), c("a.html", "b.html", "c.html") ) }) test_that("override works correctly for as_pkgdown", { pkg1 <- local_pkgdown_site(meta = list(figures = list(dev = "jpeg"))) pkg2 <- as_pkgdown(pkg1, override = list(figures = list(dev = "png"))) expect_equal(pkg2$meta$figures$dev, "png") }) # titles ------------------------------------------------------------------ test_that("multiline titles are collapsed", { rd <- rd_text("\\title{ x }", fragment = FALSE) expect_equal(extract_title(rd), "x") }) test_that("titles can contain other markup", { rd <- rd_text("\\title{\\strong{x}}", fragment = FALSE) expect_equal(extract_title(rd), "x") }) test_that("titles don't get autolinked code", { rd <- rd_text("\\title{\\code{foo()}}", fragment = FALSE) expect_equal(extract_title(rd), "foo()") }) test_that("read_meta() errors gracefully if _pkgdown.yml failed to parse", { pkg <- local_pkgdown_site() pkg <- pkg_add_file(pkg, "_pkgdown.yml", c( "url: https://pkgdown.r-lib.org", " title: Build websites for R packages" )) expect_snapshot( as_pkgdown(pkg$src_path), error = TRUE, transform = function(x) gsub(pkg$src_path, "", x, fixed = TRUE) ) }) # lifecycle --------------------------------------------------------------- test_that("can extract lifecycle badges from description", { rd_desc <- rd_text( paste0("\\description{", lifecycle::badge("deprecated"), "}"), fragment = FALSE ) rd_param <- rd_text( paste0("\\arguments{\\item{pkg}{", lifecycle::badge("deprecated"), "}}"), fragment = FALSE ) expect_equal(extract_lifecycle(rd_desc), "deprecated") expect_equal(extract_lifecycle(rd_param), NULL) }) test_that("malformed figures fail gracefully", { rd_lifecycle <- function(x) extract_lifecycle(rd_text(x)) expect_null(rd_lifecycle("{\\figure{deprecated.svg}}")) expect_null(rd_lifecycle("{\\figure{}}")) })