tests/testthat/test-utils_ast.R

targets::tar_test("walk_ast() with walk_call_knitr()", {
  expr <- quote({
    if (a > 1) {
      tar_load(target_name)
    }
    process_stuff(target_name)
  })
  expect_equal(walk_ast(expr, walk_call_knitr), "target_name")
})

targets::tar_test("walk_ast() with custom walker", {
  walk_custom <- function(expr, counter) {
    name <- deparse(expr[[1]])
    if (identical(name, "detect_this")) {
      counter_set_names(counter, as.character(expr[[2]]))
    }
  }
  expr <- quote({
    for (i in seq_len(10)) {
      for (j in seq_len(20)) {
        if (i > 1) {
          detect_this("prize")
        } else {
          ignore_this("penalty")
        }
      }
    }
  })
  expect_equal(walk_ast(expr, walk_custom), "prize")
})

Try the tarchetypes package in your browser

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

tarchetypes documentation built on Oct. 4, 2023, 5:08 p.m.