tests/testthat/test-levels.R

test_that("log levels are instrumented", {

  fs <- list(
    list("fatal",   function() { "!DEBUG-FATAL fatal" }),
    list("error",   function() { "!DEBUG-ERROR error" }),
    list("warning", function() { "!DEBUG-WARNING warning" }),
    list("info",    function() { "!DEBUG-INFO info" }),
    list("debug",   function() { "!DEBUG-DEBUG debug" }),
    list("verbose", function() { "!DEBUG-VERBOSE verbose" })
  )

  for (f in fs) {
    f2 <- instrument(f[[2]])
    expect_output(f2(), f[[1]])
  }
})

test_that("log levels work properly", {

  fs <- list(
    list("fatal",   function() debug("fatal", level = 1)),
    list("error",   function() debug("error", level = 2)),
    list("warning", function() debug("warning", level = 3)),
    list("info",    function() debug("info", level = 4)),
    list("debug",   function() debug("debug", level = 5)),
    list("verbose", function() debug("verbose", level = 6))
  )

  for (pkg_level in 1:6) {
    mockery::stub(debug, "get_package_debug_level", pkg_level)
    for (idx in seq_along(fs)) {
      if (idx <= pkg_level) {
        expect_output(fs[[idx]][[2]](), fs[[idx]][[1]])
      } else {
        expect_silent(fs[[idx]][[2]]())
      }
    }
  }
})
gaborcsardi/debugme documentation built on Nov. 3, 2023, 9:49 p.m.