# Temporarily skip these on newer Connect versions because the manifest for this
# content specifies an old version of R not found in newer images.
skip_if(safe_server_version(test_conn_1) > "2024.03.0")
# ensure that RSPM is being used so these do not take eternity
rmd_content <- deploy_example(test_conn_1, "rmarkdown")
test_that("get_environment works with no environment variables", {
env <- get_environment(rmd_content)
curr_vers <- env$env_version
env <- get_environment(rmd_content)
expect_identical(env$env_vars, list())
})
test_that("set_environment works", {
scoped_experimental_silence()
env <- get_environment(rmd_content)
new_env <- set_environment_new(
env,
test = "value",
test1 = TRUE,
test2 = 4567
)
expect_equal(
new_env$env_vars,
list(
"test",
"test1",
"test2"
)
)
new_env1 <- set_environment_new(env, test1 = "another")
expect_equal(
new_env$env_vars,
list(
"test",
"test1",
"test2"
)
)
# remove a value multiple times
rm1 <- set_environment_remove(env, test)
expect_equal(rm1$env_vars, list("test1", "test2"))
rm2 <- set_environment_remove(env, test)
expect_equal(rm1$env_vars, list("test1", "test2"))
rm3 <- set_environment_remove(env, "test1")
expect_equal(rm3$env_vars, list("test2"))
rm4 <- set_environment_remove(env, "test2")
expect_equal(rm4$env_vars, list())
})
test_that("add environment variable works", {
res <- set_environment_new(rmd_content, MYVAR = "hi")
expect_true("MYVAR" %in% res$env_vars)
expect_true(validate_R6_class(res, "Environment"))
})
test_that("edit environment variable works", {
res <- set_environment_new(rmd_content, MYVAR = "hi", OTHER = "other")
res2 <- set_environment_new(rmd_content, MYVAR = "hi2")
expect_true("MYVAR" %in% res2$env_vars)
expect_true("OTHER" %in% res2$env_vars)
expect_true(validate_R6_class(res2, "Environment"))
})
test_that("get environment works", {
res <- set_environment_new(rmd_content, MYVAR = "hi")
res <- get_environment(rmd_content)
expect_true("MYVAR" %in% res$env_vars)
expect_true(validate_R6_class(res, "Environment"))
})
test_that("remove environment variable works", {
res <- set_environment_new(rmd_content, MYVAR = "hi", ANOTHER = "how")
rem <- set_environment_new(rmd_content, MYVAR = NA)
expect_false("MYVAR" %in% rem$env_vars)
expect_true("ANOTHER" %in% rem$env_vars)
expect_true(validate_R6_class(res, "Environment"))
res <- set_environment_remove(rmd_content, ANOTHER)
expect_false("ANOTHER" %in% res$env_vars)
res <- set_environment_new(rmd_content, MYVAR = "hi", ANOTHER = "how")
myvar <- c("MYVAR", "ANOTHER")
res <- set_environment_remove(rmd_content, !!myvar)
expect_false("ANOTHER" %in% res$env_vars)
expect_false("MYVAR" %in% res$env_vars)
res <- set_environment_new(rmd_content, MYVAR = "hi", ANOTHER = "how")
myvar <- c("MYVAR", "ANOTHER")
res <- set_environment_remove(rmd_content, !!!myvar)
expect_false("ANOTHER" %in% res$env_vars)
expect_false("MYVAR" %in% res$env_vars)
res <- set_environment_new(rmd_content, MYVAR = "hi", ANOTHER = "how")
myvar <- c("MYVAR" = "1", "ANOTHER" = "2")
res <- set_environment_remove(rmd_content, !!!myvar)
expect_false("ANOTHER" %in% res$env_vars)
expect_false("MYVAR" %in% res$env_vars)
res <- set_environment_new(rmd_content, MYVAR = "hi", ANOTHER = "how")
myvar <- c("MYVAR" = "1", "ANOTHER" = "2")
res <- set_environment_remove(rmd_content, !!myvar)
expect_true("ANOTHER" %in% res$env_vars)
expect_true("MYVAR" %in% res$env_vars)
})
test_that("set all environment variables works", {
res <- set_environment_all(rmd_content)
expect_true(length(res$env_vars) == 0)
expect_true(validate_R6_class(res, "Environment"))
res <- set_environment_all(rmd_content, "MYVAR" = "ONE", "ANOTHER" = "HELLO")
expect_equal(res$env_vars, list("ANOTHER", "MYVAR"))
expect_true(validate_R6_class(res, "Environment"))
res <- set_environment_all(rmd_content, "MYVAR" = "TWO", "HELLO" = "AGAIN")
expect_equal(res$env_vars, list("HELLO", "MYVAR"))
expect_true(validate_R6_class(res, "Environment"))
res <- set_environment_all(rmd_content)
expect_true(length(res$env_vars) == 0)
expect_true(validate_R6_class(res, "Environment"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.