I suggest we use the cli package (we use in our packages). It allows:
- Nicely formatted error, warnings and messages
- Error classes (which makes testing easier)
- Much easier to create messages (no need for glue)
In my experience, it doesn't jive well with {assertthat}, so that's a dependency I would remove. Here's how typical cli message works (example from the frictionless R package):
# Check resources
if (length(package$resources) == 0) {
cli::cli_abort(
c(
"{.arg package} must have resources.",
"i" = "Use {.fun add_resource} to add resources."
),
class = "frictionless_error_package_without_resources"
)
}
This would print:
And you can test it like:
expect_error(
write_package(p_empty, dir),
class = "frictionless_error_package_without_resources"
)
I suggest we use the cli package (we use in our packages). It allows:
In my experience, it doesn't jive well with {assertthat}, so that's a dependency I would remove. Here's how typical cli message works (example from the frictionless R package):
This would print:
And you can test it like: