tests/testthat/test-division_stats.R

test_that("division_stats() parameter validation works correctly", {
  # Test year parameter validation
  expect_error(division_stats(), "Enter valid year between 2020-")
  expect_error(division_stats(year = NULL), "Enter valid year between 2020-")
  expect_error(division_stats(year = 2019), "Enter valid year between 2020-")
  expect_error(division_stats(year = 2030), "Enter valid year between 2020-")
  expect_error(division_stats(year = "2024"), "Enter valid year between 2020-")
  expect_error(
    division_stats(year = c(2019, 2024)),
    "Enter valid year between 2020-"
  )

  # Test division parameter validation
  expect_error(
    division_stats(year = 2024, division = NULL, level = "teammatch"),
    "Enter valid division as a number: 1, 2, 3"
  )
  expect_error(
    division_stats(year = 2024, division = 0, level = "teammatch"),
    "Enter valid division as a number: 1, 2, 3"
  )
  expect_error(
    division_stats(year = 2024, division = 4, level = "teammatch"),
    "Enter valid division as a number: 1, 2, 3"
  )
  expect_error(
    division_stats(year = 2024, division = c(1, 2), level = "teammatch"),
    "Enter single value for division"
  )

  # Test level parameter validation
  expect_error(division_stats(year = 2024, level = NULL), "Enter valid level")
  expect_error(
    division_stats(year = 2024, level = "invalid"),
    "Enter valid level"
  )
  expect_error(
    division_stats(year = 2024, level = c("teamseason", "match")),
    "Enter single value for level"
  )

  # Test sport parameter validation
  expect_error(
    division_stats(year = 2024, level = "teammatch", sport = "VB"),
    "Enter valid sport"
  )
  expect_error(
    division_stats(year = 2024, level = "teammatch", sport = "WVB1"),
    "Enter valid sport"
  )
  expect_error(
    division_stats(year = 2024, level = "teammatch", sport = 123),
    "Enter valid sport as a three-letter character string"
  )
  expect_error(
    division_stats(year = 2024, level = "teammatch", sport = NULL),
    "Enter valid `sport`"
  )

  # Test save parameter validation
  expect_error(
    division_stats(year = 2024, level = "teammatch", save = "TRUE"),
    "`save` must be a logical"
  )
  expect_error(
    division_stats(year = 2024, level = "teammatch", save = 1),
    "`save` must be a logical"
  )
  expect_error(
    division_stats(year = 2024, level = "teammatch", save = NULL),
    "Enter valid `save` value"
  )

  # Test path parameter validation
  expect_error(
    division_stats(year = 2024, level = "teammatch", path = 123),
    "Enter valid path as a character string"
  )
  expect_error(
    division_stats(year = 2024, level = "teammatch", path = NULL),
    "Enter valid path as a character string"
  )
  expect_error(
    division_stats(year = 2024, level = "teammatch", path = c(".", "..")),
    "Enter valid path as a character string"
  )
})

test_that("division_stats() level-specific logic branches correctly", {
  # Test that different levels would trigger different save branches
  levels <- c("teamseason", "teammatch", "playermatch", "pbp")

  for (level in levels) {
    expect_silent(check_match(
      "level",
      level,
      c("teamseason", "season", "teammatch", "playermatch", "match", "pbp")
    ))
  }
})

Try the ncaavolleyballr package in your browser

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

ncaavolleyballr documentation built on Jan. 8, 2026, 1:07 a.m.