tests/testthat/test_field.R

context("Test field objects")


test_that("Field creation works as expected", {
  # Should work
  expect_error(field("name"), NA)
  expect_equal(class(field("name")), "field")
  expect_equal(
    field("name")[["output_name"]],
    field("name")[["name"]]
    )
  expect_error(
    field(
      name = "name",
      output_name = "name2",
      is_compulsary = TRUE,
      transform = function(x) {
        paste0("transformed_", x)
      },
      validate = is.character,
      warn_on_overwrite = FALSE
      ),
    NA
    )
})


test_that("set_field works as expected", {
    my_field <- field(
      "foo",
      validate = is.character,
      transform = function(x) {
        paste0("transformed_", x)
      },
      warn_on_overwrite = TRUE
    )

    expect_error(my_field <- set_field(my_field, "Hello"), NA)
    expect_equal(my_field[["value"]], "transformed_Hello")
    expect_warning(set_field(my_field, "Goodbye"))
    # No warning if same value
    expect_warning(set_field(my_field, "Hello"), NA)
    expect_error(set_field(my_field, 3))
})

test_that("field_uuid works as expected", {
 expect_error(
   my_field <- field_uuid(),
   NA
 )
})
signaux-faibles/MLlogr documentation built on June 27, 2019, 1:20 p.m.