test_that("appDependencies includes implicit deps", {
skip_on_cran()
withr::local_options(renv.verbose = TRUE)
path <- local_temp_app(list("test.Rmd" = ""))
deps <- appDependencies(path)
expect_true("rmarkdown" %in% deps$Package)
})
test_that("appDependencies includes implicit deps when appMode forced", {
skip_on_cran()
skip_if_not_installed("plumber")
skip_if_not_installed("shiny")
skip_if_not_installed("rmarkdown")
withr::local_options(renv.verbose = TRUE)
dir <- local_temp_app(list(
"app.R" = "",
"plumber.R" = "",
"report.Rmd" = "",
"index.html" = ""
))
files <- c("app.R", "plumber.R", "report.Rmd", "index.html")
# unless forced to "static", the presence of *.Rmd forces rmarkdown as an R
# dependency, regardless of appMode.
# inference indicates a Plumber API.
deps <- appDependencies(dir)
expect_true("plumber" %in% deps$Package)
expect_false("shiny" %in% deps$Package)
expect_true("rmarkdown" %in% deps$Package)
deps <- appDependencies(dir, appMode = "api")
expect_true("plumber" %in% deps$Package)
expect_false("shiny" %in% deps$Package)
expect_true("rmarkdown" %in% deps$Package)
deps <- appDependencies(dir, appMode = "shiny")
expect_false("plumber" %in% deps$Package)
expect_true("shiny" %in% deps$Package)
expect_true("rmarkdown" %in% deps$Package)
deps <- appDependencies(dir, appMode = "rmd-static")
expect_false("plumber" %in% deps$Package)
expect_false("shiny" %in% deps$Package)
expect_true("rmarkdown" %in% deps$Package)
deps <- appDependencies(dir, appMode = "static")
expect_equal(deps, data.frame(
Package = character(),
Version = character(),
Source = character(),
Repository = character(),
stringsAsFactors = FALSE
))
})
test_that("static project doesn't have deps", {
skip_on_cran()
path <- local_temp_app(list("index.html" = ""))
deps <- appDependencies(path)
expect_equal(deps, data.frame(
Package = character(),
Version = character(),
Source = character(),
Repository = character(),
stringsAsFactors = FALSE
))
})
test_that("infers correct packages for each source", {
skip_on_cran()
simulateMetadata <- function(appMode,
hasParameters = FALSE,
documentsHavePython = FALSE) {
list(
appMode = appMode,
hasParameters = hasParameters,
documentsHavePython = documentsHavePython
)
}
# Simple regression test in preparation for refactoring
expect_snapshot({
inferRPackageDependencies(simulateMetadata("rmd-static"))
inferRPackageDependencies(simulateMetadata("rmd-static", hasParameters = TRUE))
inferRPackageDependencies(simulateMetadata("quarto-static"))
inferRPackageDependencies(simulateMetadata("quarto-shiny"))
inferRPackageDependencies(simulateMetadata("rmd-shiny"))
inferRPackageDependencies(simulateMetadata("shiny"))
inferRPackageDependencies(simulateMetadata("api"))
inferRPackageDependencies(simulateMetadata("api", documentsHavePython = TRUE))
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.