diff --git a/tests/testthat/test-theme.R b/tests/testthat/test-theme.R index b98a5562..3d45650c 100644 --- a/tests/testthat/test-theme.R +++ b/tests/testthat/test-theme.R @@ -6,38 +6,78 @@ skip_if_not_installed("withr") # We need to install the package in a temporary library when we are in dev mode install_dev_package() +theme_file <- function(...) { + test_path("theme", ...) +} + +resource_dir <- function(input) { + theme_file( + paste0(fs::path_ext_remove(basename(input)), "_files") + ) +} + +local_render_theme_file <- function(input, env = parent.frame()) { + skip_if_not_installed("withr") + withr::defer( + { + # clean up output resource directory + out_dir <- resource_dir(input) + if (fs::dir_exists(out_dir)) { + fs::dir_delete(out_dir) + } + # clean up internal .quarto directory + if (fs::dir_exists(".quarto")) { + fs::dir_delete(".quarto") + } + }, + envir = env + ) +} + test_that("render flextable", { skip_if_not_installed("bslib") skip_if_not_installed("flextable") - .render(test_path("theme/flextable.qmd")) + file <- theme_file("flextable.qmd") + local_render_theme_file(file) + .render(file) }) test_that("render ggiraph", { skip_if_not_installed("bslib") skip_if_not_installed("ggiraph") - .render(test_path("theme/ggiraph.qmd")) + file <- theme_file("ggiraph.qmd") + local_render_theme_file(file) + .render(file) }) test_that("render ggplot2", { skip_if_not_installed("bslib") skip_if_not_installed("ggplot2") - .render(test_path("theme/ggplot2.qmd")) + file <- theme_file("ggplot2.qmd") + local_render_theme_file(file) + .render(test_path(file)) }) test_that("render gt", { skip_if_not_installed("bslib") skip_if_not_installed("gt") - .render(test_path("theme/gt.qmd")) + file <- theme_file("gt.qmd") + local_render_theme_file(file) + .render(file) }) test_that("render plotly-r", { skip_if_not_installed("bslib") skip_if_not_installed("plotly") - .render(test_path("theme/plotly-r.qmd")) + file <- theme_file("plotly-r.qmd") + local_render_theme_file(file) + .render(file) }) test_that("render thematic", { skip_if_not_installed("bslib") skip_if_not_installed("thematic") - .render(test_path("theme/thematic.qmd")) + file <- theme_file("thematic.qmd") + local_render_theme_file(file) + .render(file) })