tests/testthat/test-color.R

test_that("colours are normalised to canonical strings", {
  expect_identical(normalize_color(NULL), "")
  expect_identical(normalize_color(NA), "")
  expect_identical(normalize_color("Red"), "red")
  expect_identical(normalize_color("bright-blue"), "bright_blue")
  expect_identical(normalize_color("grey"), "bright_black")
  expect_identical(normalize_color(1), "red")
  expect_identical(normalize_color(196), "196")
  expect_identical(normalize_color("196"), "196")
  expect_identical(normalize_color("3"), "yellow")
  expect_identical(normalize_color("#FF8700"), "#ff8700")
  expect_identical(normalize_color("#f80"), "#ff8800")
  expect_identical(normalize_color("steelblue"), "#4682b4")
  expect_error(normalize_color("not-a-colour"), "Unknown colour")
  expect_error(normalize_color(300), "between 0 and 255")
})

test_that("colour SGR codes depend on the colour mode", {
  expect_identical(color_sgr("red"), "31")
  expect_identical(color_sgr("red", background = TRUE), "41")
  expect_identical(color_sgr("bright_white"), "97")
  expect_identical(color_sgr("196"), "38;5;196")
  expect_identical(color_sgr("#ff0000"), "38;2;255;0;0")
  expect_identical(color_sgr("#ff0000", mode = "256"), "38;5;196")
  expect_identical(color_sgr("#ff0000", mode = "16"), "91")
  expect_identical(color_sgr("196", mode = "16"), "91")
  expect_identical(color_sgr(c("", "red"), mode = "none"), c("", ""))
  expect_identical(color_sgr(c("", "green", "red")), c("", "32", "31"))
})

Try the termr package in your browser

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

termr documentation built on Oct. 21, 2026, 5:13 p.m.