tests/testthat/test-cff_modify.R

test_that("Errors and messages", {
  a_cff <- cff()
  a_list <- as.list(a_cff)
  expect_true(inherits(a_list, "list"))
  expect_false(is_cff(a_list))
  expect_snapshot(cff_modify(a_list, abstract = "An abstract"),
    error = TRUE
  )

  # Nothing provided
  expect_snapshot(xend <- cff_modify(a_cff))
  expect_identical(xend, a_cff)

  # But silent in cff create
  expect_silent(aa <- cff_create("testthat", keys = NULL))

  # Duplicate args
  expect_snapshot(dup <- cff_modify(a_cff, abstract = "a", abstract = "b"))
  expect_length(dup, length(a_cff) + 1)
  expect_identical(dup$abstract, "a")
  expect_snapshot(cff_modify(a_cff, "a", "b"), error = TRUE)
  expect_snapshot(mod <- cff_modify(a_cff, "a", abstract = "b"))
  expect_length(mod, length(a_cff) + 1)
  expect_identical(mod$abstract, "b")
})

test_that("Can reclass", {
  a_cff <- cff()

  mod <- cff_modify(a_cff, contact = list(list(
    name = "a contact",
    address = "here"
  )))


  expect_true(cff_validate(mod, verbose = FALSE))
  expect_s3_class(mod$contact, c("cff_pers_lst", "cff"), exact = TRUE)
  expect_s3_class(mod$contact[1], c("cff_pers", "cff"), exact = TRUE)
})

Try the cffr package in your browser

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

cffr documentation built on Sept. 11, 2024, 8:41 p.m.