tests/testthat/test-po_explain_plurals.R

test_that("po_explain_plurals works as expected", {
  # NB: expect_messages since technically message() can be called >1 time internally
  expect_messages(
    po_explain_plurals("ru"),
    c("Russian.*3 plural forms", "plural_index = 0 applies when n = 1")
  )

  expect_message(po_explain_plurals("ar", 3), "Arabic.*plural index 3 applies when n = 3-10")

  # known error cases
  expect_error(po_explain_plurals(1L), "Supply one language code", fixed=TRUE)
  expect_error(po_explain_plurals(letters), "Supply one language code", fixed=TRUE)
  expect_error(po_explain_plurals("en", "a"), "If supplied, `index` should be a single non-negative number", fixed=TRUE)
  expect_error(
    po_explain_plurals("en", 1:10),
    "If supplied, `index` should be a single non-negative number",
    fixed=TRUE
  )
  expect_error(po_explain_plurals("en", -1), "If supplied, `index` should be a single non-negative number", fixed=TRUE)

  expect_error(po_explain_plurals("xx"), "not a known language", fixed=TRUE)
  expect_error(po_explain_plurals("en", 10L), "en only has 2 plural forms", fixed=TRUE)
})
MichaelChirico/potools documentation built on June 29, 2024, 3:16 p.m.