diff --git a/tests/testthat/helper-state.R b/tests/testthat/helper-state.R new file mode 100644 index 0000000..4910faa --- /dev/null +++ b/tests/testthat/helper-state.R @@ -0,0 +1,26 @@ +# This helper ensures the package does not modify the session global state. As +# per CRAN policy, packages should not interfere with the user's session state. +# If global settings need to be modified, they should be restored to their +# original values on exit. This can be achieved with the `on.exit()` base +# function, or more conveniently with the `withr` package. +# We add a test on R >= 4.0.0 because some functions such as +# `globalCallingHandlers()` did not exist before. +if (getRversion() >= "4.0.0") { + testthat::set_state_inspector(function() { + list( + attached = search(), + connections = getAllConnections(), + cwd = getwd(), + envvars = Sys.getenv(), + handlers = globalCallingHandlers(), + libpaths = .libPaths(), + locale = Sys.getlocale(), + options = options(), + par = par(), + packages = .packages(all.available = TRUE), + sink = sink.number(), + timezone = Sys.timezone(), + NULL + ) + }) +}