tests/testthat/test-update.R

test_that("update functions work", {
  smvr_vec <- parse_semver(
    c("1.2.3", "1.2.3-a.1", "2.0.0+foo.bar")
  )
  expect_equal(
    increment_major(smvr_vec),
    smvr(c(2, 2, 3))
  )
  expect_equal(
    increment_minor(smvr_vec),
    smvr(c(1, 1, 2), c(3, 3, 1))
  )
  expect_equal(
    increment_patch(smvr_vec),
    smvr(c(1, 1, 2), c(2, 2, 0), c(4, 4, 1))
  )
  expect_equal(
    mark_as_pre_release(smvr_vec, "beta"),
    smvr(
      c(1, 1, 2),
      c(2, 2, 0),
      c(3, 3, 0),
      "beta",
      c("", "", "foo.bar")
    )
  )
  expect_equal(
    add_build_metadata(smvr_vec, "build.1"),
    smvr(
      c(1, 1, 2),
      c(2, 2, 0),
      c(3, 3, 0),
      c("", "a.1", ""),
      "build.1"
    )
  )
  expect_equal(
    increment_major(smvr_vec) |>
      mark_as_pre_release(c("alpha", "beta", "rc")) |>
      add_build_metadata(c("a", "b", "c")),
    smvr(
      c(2, 2, 3),
      pre_release = c("alpha", "beta", "rc"),
      build = c("a", "b", "c")
    )
  )
})

test_that("invalid build metadata", {
  expect_snapshot(
    smvr(1:5) |>
      add_build_metadata(c("foo", "bar.baz", "@foo", ":bar")),
    error = TRUE
  )
})

Try the smvr package in your browser

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

smvr documentation built on June 28, 2025, 1:07 a.m.