test_that("long families are wrapped", { out <- roc_proc_text(rd_roclet(), " #' Title #' @family Long family name #' long_function_name_________________________1 <- function() {} #' Title #' @family Long family name long_function_name_________________________2 <- function() {} #' Title #' @family Long family name #' long_function_name_________________________3 <- function() {} #' Title #' @family Long family name long_function_name_________________________4 <- function() {} ")[[1]] seealso <- out$get_value("seealso") expect_true(grepl("^Other Long family name:", seealso)) expect_equal(str_count(seealso, "\n"), 3) }) test_that("special names escaped in family tag", { out <- roc_proc_text(rd_roclet(), " #' Title #' @family Long family name f <- function() {} #' Title #' @family Long family name '%+%' <- function(a, b) {} ")[[1]] seealso <- out$get_value("seealso") expect_true(grepl("^Other Long family name:", seealso)) expect_match(seealso, "\\\\%\\+\\\\%") }) test_that("family links to name only, not all aliases", { out <- roc_proc_text(rd_roclet(), " #' Title #' @aliases f2 f3 #' #' @family many aliases f <- function() {} #' Title #' @aliases g2 g3 #' #' @family many aliases g <- function() {} ")[[1]] seealso <- out$get_value("seealso") expect_true(grepl("^Other many aliases:", seealso)) expect_equal(str_count(seealso, fixed("\\code{\\link")), 1) }) test_that("families listed in same order as input", { out <- roc_proc_text(rd_roclet(), " #' foo #' @family a foo <- function() {} #' foo #' @family b #' @family a bar <- function() {} #' foo #' @family b baz <- function() {} ")[[2]] seealso <- out$get_value("seealso") expect_match(seealso[1], "^Other b") expect_match(seealso[2], "^Other a") }) test_that("only functions get () suffix", { out <- roc_proc_text(rd_roclet(), " #' foo #' @family a foo <- function() {} #' bar #' @family a bar <- 1:10 ") expect_equal(out[[1]]$get_value("seealso"), "Other a: \n\\code{\\link{bar}}") expect_equal(out[[2]]$get_value("seealso"), "Other a: \n\\code{\\link{foo}()}") }) test_that("family also included in concepts", { out <- roc_proc_text(rd_roclet(), " #' foo #' @family a foo <- function() {} ")[[1]] expect_equal(out$get_value("concept"), "a") }) test_that("custom family prefixes can be set", { local_roxy_meta_set("rd_family_title", list(a = "Custom prefix: ")) out <- roc_proc_text(rd_roclet(), " #' foo #' @family a foo <- function() {} #' bar #' @family a bar <- function() {} ")[[1]] expect_match(out$get_value("seealso"), "^Custom prefix:") }) test_that("careful ordering", { out <- roc_proc_text(rd_roclet(), " #' foo1 #' @family a foo1 <- function() {} #' foo2 #' @family a foo2 <- function() {} #' Foo3 #' @family a Foo3 <- function() {} #' foo #' @family a foo <- function() {} ") expect_snapshot({ out }) })