tests/testthat/test-config.R

test_that("validate_config() checks option fields", {
  def <- list(
    list(
      name = "field",
      validator = option_validator("apples", "bananas"),
      required = FALSE
    )
  )
  expect_silent(validate_config(def, list()))
  expect_silent(validate_config(def, list(field = "apples")))
  expect_silent(validate_config(def, list(field = "bananas")))
  expect_error(validate_config(def, list(field = "cherries")))
})

test_that("validate_config() checks integer fields", {
  def <- list(
    list(
      name = "field",
      validator = positive_integer_validator,
      required = FALSE
    )
  )
  expect_silent(validate_config(def, list()))
  expect_silent(validate_config(def, list(field = 1L)))
  expect_error(validate_config(def, list(field = 1.)))
  expect_error(validate_config(def, list(field = "1")))
})

test_that("validate_config() checks for required fields", {
  def <- list(
    list(
      name = "field",
      options = positive_integer_validator,
      required = TRUE
    )
  )
  expect_error(validate_config(def, list()))
})

test_that("validate_config() rejects unknown fields", {
  def <- list()
  expect_error(validate_config(def, list(field = "hello")))
})
Appsilon/rhino documentation built on Sept. 27, 2024, 7:01 p.m.