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)
})

Try the potools package in your browser

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

potools documentation built on Nov. 2, 2023, 5:20 p.m.