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) })