tests/testthat/test-safe_execute.R

#===============================================================================
# Test: safe_execute()
# File: tests/testthat/test-safe_execute.R
# Description: Unit tests for safe_execute()
# Dependencies: testthat, cli
#===============================================================================

#------------------------------------------------------------------------------
# Basic functionality
#------------------------------------------------------------------------------
test_that("safe_execute returns result when successful", {
  result <- safe_execute(log(1))
  expect_equal(result, 0)
})

test_that("safe_execute returns NULL when error occurs", {
  result <- safe_execute(log("a"))
  expect_null(result)
})

#------------------------------------------------------------------------------
# CLI messaging
#------------------------------------------------------------------------------
test_that("safe_execute emits CLI message on error", {
  skip_if_not_installed("cli")
  expect_message(
    safe_execute(log("a"), fail_message = "Custom failure message"),
    regexp = "Custom failure message"
  )
})

test_that("safe_execute is silent when quiet = TRUE", {
  skip_if_not_installed("cli")
  expect_silent(
    safe_execute(log("a"), fail_message = "Should not print", quiet = TRUE)
  )
})

Try the evanverse package in your browser

Any scripts or data that you put into this service are public.

evanverse documentation built on March 10, 2026, 5:07 p.m.