Nothing
test_field_in_documentation <- function(field) {
# Load .Rd files based on environment
# When using R-CMD-Check the deployment is different from when using devtools::test().
# Deployment on Github is also different from running R-CMD-Check locally
# Here we need to read directly from a .rdx database stored in the "help" folder
# If we are testing locally, we read from the "man" folder
# Note that `devtools::test()`, `devtools::check()` and GitHub workflows all have different
# folder structures during testing, so we need to account for these differences
# Look for the source of .Rd files
help_dir <- system.file("help", package = testthat::testing_package())
man_dir <- system.file("man", package = testthat::testing_package())
testthat::expect_true(any(dir.exists(c(help_dir, man_dir))))
if (checkmate::test_directory_exists(help_dir)) {
rdx_file <- purrr::keep(dir(help_dir, full.names = TRUE), ~ stringr::str_detect(., ".rdx$"))
rd_envir <- new.env()
lazyLoad(stringr::str_remove(rdx_file, ".rdx$"), envir = rd_envir)
rd_names <- ls(rd_envir)
rd_files <- rd_names |>
purrr::map(~ as.character(eval(purrr::pluck(rd_envir, .)))) |>
purrr::map_chr(~ paste(., collapse = ""))
names(rd_files) <- paste0(rd_names, ".Rd")
} else if (checkmate::test_directory_exists(man_dir)) {
rd_paths <- purrr::keep(dir(man_dir, full.names = TRUE), ~ stringr::str_detect(., ".[Rr][Dd]$"))
rd_files <- purrr::map(rd_paths, readLines)
names(rd_files) <- purrr::map_chr(rd_paths, basename)
} else {
stop(".Rd files could not be located")
}
# Skip the "*-package.Rd" file
rd_files <- rd_files[!stringr::str_detect(names(rd_files), "-package.[Rr][Dd]$")]
# Skip the "data" files
rd_files <- purrr::discard(rd_files, ~ any(stringr::str_detect(., r"{\\+keyword\\?\{data\\?\}}"))) # nolint: absolute_path_linter
# Check renaming
for (rd_id in seq_along(rd_files)) {
has_field <- any(stringr::str_detect(rd_files[[rd_id]], paste0(r"{\\}", field)))
testthat::expect_true(has_field, label = paste("File:", names(rd_files)[[rd_id]]))
}
}
test_that(r"{.Rd files have \examples}", {
test_field_in_documentation("example")
})
test_that(r"{.Rd files have \value}", {
test_field_in_documentation("value")
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.