Nothing
test_that("global_settings_get returns NULL for non-existent settings", {
# Reset options
options(saros = NULL)
result <- global_settings_get("makeme")
expect_null(result)
})
test_that("global_settings_get retrieves existing settings", {
# Set up test options
test_options <- list(
makeme_defaults = list(digits = 2, showNA = "never")
)
options(saros = test_options)
result <- global_settings_get("makeme")
expect_equal(result, list(digits = 2, showNA = "never"))
# Clean up
options(saros = NULL)
})
test_that("global_settings_get handles different function names", {
# Set up test options for multiple functions
test_options <- list(
makeme_defaults = list(digits = 2),
make_link_defaults = list(folder = "test"),
fig_height_h_barchart_defaults = list(height = 10)
)
options(saros = test_options)
expect_equal(global_settings_get("makeme"), list(digits = 2))
expect_equal(global_settings_get("make_link"), list(folder = "test"))
expect_equal(global_settings_get("fig_height_h_barchart"), list(height = 10))
# Clean up
options(saros = NULL)
})
test_that("global_settings_set creates new settings", {
# Clean start
options(saros = NULL)
# The function may fail with NULL current_options due to modifyList
# This reveals a bug in the function - it should handle NULL current_options
expect_error(
global_settings_set(
new = list(digits = 3, showNA = "always"),
fn_name = "makeme",
quiet = TRUE
),
"is.list\\(x\\) is not TRUE"
)
# Clean up
options(saros = NULL)
})
test_that("global_settings_set updates existing settings", {
# Set initial options
options(saros = list(makeme_defaults = list(digits = 1, color = "blue")))
# Update some options
result <- global_settings_set(
new = list(digits = 5, newparam = "test"),
fn_name = "makeme",
quiet = TRUE
)
# Check updates
stored <- global_settings_get("makeme")
expect_equal(stored$digits, 5)
expect_equal(stored$color, "blue") # Should remain unchanged
expect_equal(stored$newparam, "test") # Should be added
# Clean up
options(saros = NULL)
})
test_that("global_settings_set handles null_deletes parameter", {
# Set initial options
options(
saros = list(makeme_defaults = list(digits = 1, color = "blue", size = 10))
)
# Test null_deletes = FALSE (default)
global_settings_set(
new = list(color = NULL, newparam = "test"),
fn_name = "makeme",
quiet = TRUE,
null_deletes = FALSE
)
stored <- global_settings_get("makeme")
expect_null(stored$color) # Should be NULL
expect_equal(stored$digits, 1) # Should remain
expect_equal(stored$size, 10) # Should remain
expect_equal(stored$newparam, "test")
# Reset and test null_deletes = TRUE
options(
saros = list(makeme_defaults = list(digits = 1, color = "blue", size = 10))
)
global_settings_set(
new = list(color = NULL, newparam = "test"),
fn_name = "makeme",
quiet = TRUE,
null_deletes = TRUE
)
stored <- global_settings_get("makeme")
expect_false("color" %in% names(stored)) # Should be deleted
expect_equal(stored$digits, 1)
expect_equal(stored$size, 10)
expect_equal(stored$newparam, "test")
# Clean up
options(saros = NULL)
})
test_that("global_settings_set returns old and new values", {
# Set initial options
options(saros = list(makeme_defaults = list(digits = 1, color = "blue")))
# Update with return value check
result <- global_settings_set(
new = list(digits = 5),
fn_name = "makeme",
quiet = TRUE
)
expect_type(result, "list")
# Result should contain information about the change
expect_true(length(result) > 0)
# Clean up
options(saros = NULL)
})
test_that("global_settings_reset resets to defaults", {
# Set some options
options(saros = list(makeme_defaults = list(digits = 5, color = "red")))
# Reset should restore to factory defaults
expect_message(result <- global_settings_reset(), "reset to factory defaults")
# Check that options are reset (not necessarily NULL, but to defaults)
stored <- global_settings_get("makeme")
# The function resets to factory defaults, not NULL
expect_type(stored, "list")
# Clean up
options(saros = NULL)
})
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.