tests/testthat/test-assertion.R

describe("check_last_level works", {
  it("checks last picks", {
    x <- list(datasets(), variables(), values())
    expect_match(check_last_level(x, "values"), "picks object")
  })

  it("checks last picks", {
    x <- picks(datasets(), variables(), values())
    expect_true(check_last_level(x, "values"))
  })

  it("returns FALSE", {
    x <- picks(datasets(), variables(), values())
    expect_match(check_last_level(x, "variables"), "in variables")
  })
})


describe("check_picks_has works", {
  p <- picks(datasets(), variables(), values())

  it("returns TRUE when element is present", {
    expect_true(check_picks(p, datasets = TRUE))
    expect_true(check_picks(p, variables = TRUE))
    expect_true(check_picks(p, values = TRUE))
  })

  it("returns an error string when values is absent", {
    p_no_values <- picks(datasets(), variables())
    expect_match(check_picks(p_no_values, values = TRUE), "Must have values()")
  })

  it("returns an error string when variables is absent", {
    p_no_variables <- picks(datasets())
    expect_match(check_picks(p_no_variables, variables = TRUE), "Must have variables()")
  })

  it("returns an error string when x is not a picks object", {
    expect_match(check_picks(list()), "Must be a 'picks' object")
  })
})

describe("assert_picks", {
  p <- picks(datasets(), variables(), values())

  it("passes invisibly when element is present", {
    expect_invisible(assert_picks(p, datasets = TRUE))
    expect_invisible(assert_picks(p, variables = TRUE))
    expect_invisible(assert_picks(p, values = TRUE))
  })

  it("errors when element is absent", {
    p_no_values <- picks(datasets(), variables())
    expect_error(assert_picks(p_no_values, values = TRUE), "Must have values()")
  })

  it("errors when x is not a picks object", {
    expect_error(assert_picks(list(), datasets = TRUE), "Must be a 'picks' object")
  })
})

Try the teal.picks package in your browser

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

teal.picks documentation built on Oct. 9, 2026, 5:07 p.m.