tests/testthat/test-serialise.R

test_that("serialise", {
  obj <- list(a = 1, b = "hello, world!")

  expect_equal(
    default_serialiser(obj),
    yyjsonr::write_json_str(obj, auto_unbox = TRUE)
  )

  expect_equal(
    default_serialiser(obj, auto_unbox = FALSE),
    yyjsonr::write_json_str(obj)
  )

  expect_equal(
    default_serialiser(obj, opts = list(auto_unbox = FALSE)),
    yyjsonr::write_json_str(obj)
  )
})

test_that("custom serialiser works", {
  global_serialiser <- getOption("AMBIORIX_SERIALISER")
  on.exit(options(AMBIORIX_SERIALISER = global_serialiser))

  my_serialiser <- function(data, ...) {
    list(
      data = data,
      serialised = jsonlite::toJSON(x = data, ...)
    )
  }

  options(AMBIORIX_SERIALISER = my_serialiser)

  obj <- list(a = 1, b = "hello, world!")

  expect_equal(
    my_serialiser(obj),
    list(
      data = obj,
      serialised = jsonlite::toJSON(obj)
    )
  )
})

Try the ambiorix package in your browser

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

ambiorix documentation built on April 3, 2025, 9:34 p.m.