tests/testthat/test-vega-version.R

test_that("get_vega_version works correctly", {

  skip_on_cran()

  vega_vers <- list(
    vega_lite = "3.0.2",
    vega = "5.3.2",
    vega_embed = "4.0.0-rc1"
  )

  expect_identical(get_vega_version("3.0.2"), vega_vers)

})

test_that("vega_version() works correctly", {

  vega_version <- vega_version()

  expect_identical(
    names(vega_version),
    c("widget", "vega_lite", "vega", "vega_embed", "is_locked")
  )

  expect_identical(get_major(c("2.3.0", "3.2")), c("2", "3"))
  expect_identical(get_major(TRUE), TRUE)
  expect_identical(get_major("vl5"), "vl5")

})


test_that("vega_version_all() works correctly", {

  vega_version_all <- vega_version_all()

  expect_identical(
    names(vega_version_all),
    c("widget", "vega_lite", "vega", "vega_embed")
  )

  expect_s3_class(vega_version_all, 'data.frame')

})



test_that("vega_version_available() works correctly", {

  vega_version_all <- vega_version_all()
  vega_version <- vega_version()
  vega_version_available <- vega_version_available()

  expect_s3_class(vega_version_available, 'data.frame')

  # keep this for later
  is_locked <- vw_env$is_locked

  vw_lock_set(FALSE)
  expect_identical(
    vega_version_all(),
    vega_version_available()
  )

  vw_lock_set(TRUE)
  all <- vega_version_all()
  expect_identical(
    all[all[["widget"]] == vw_env[["widget"]], ],
    vega_version_available()
  )

  # set it back to how it was found
  vw_lock_set(is_locked)
})


test_that("get_candidate() works", {

  exp_ca <- function(result, index, re_msg) {
    expect_identical(result$index, index)

    if (is.null(re_msg)) {
      expect_null(result$message)
    } else {
      expect_match(result$message, re_msg)
    }
  }

  exp_ca(get_candidate("5", c("5.2.0", "4.1.7")), 1L, NULL)
  exp_ca(get_candidate("4", c("5.2.0", "4.1.7")), 2L, NULL)
  exp_ca(get_candidate("6", c("5.2.0", "4.1.7")), 1L, "maximum")
  exp_ca(get_candidate("3", c("5.2.0", "4.1.7")), 2L, "minimum")

  exp_ca(get_candidate("5.21.0", c("5.21.0", "5.17.0")), 1L, NULL)
  exp_ca(get_candidate("5.01.0", c("5.21.0", "5.17.0")), 1L, NULL)
  exp_ca(get_candidate("5.22.0", c("5.21.0", "5.17.0")), 1L, NULL)

})

test_that("get_widget_string() works", {

  library("tibble")

  available <- tribble(
      ~widget, ~vega_lite,    ~vega,
        "vl5",    "5.2.0", "5.21.0",
        "vl4",    "4.1.7", "5.17.0"
  )

  expect_identical(get_widget_string("vega-lite", "5", available), "vl5")
  expect_identical(get_widget_string("vega", "5", available), "vl5")

  expect_warning(
    expect_identical(get_widget_string("vega-lite", "2", available), "vl4"),
    "minimum"
  )

  expect_warning(
    expect_identical(get_widget_string("vega-lite", "20", available), "vl5"),
    "maximum"
  )
})

Try the vegawidget package in your browser

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

vegawidget documentation built on May 29, 2024, 12:17 p.m.