tests/testthat/test-setup_mesos.R

# Unit Tests
testthat::test_that("With no subfolders specified, returns empty tibble", {
  files <- c("_file1.md")
  result <- saros.base:::create_includes_content_path_df(files_to_process = files)
  testthat::expect_equal(result, tibble::tibble())
})

testthat::test_that("Handles mesos_var_subfolders correctly", {
  files <- c("_file1.md")
  main_dir <- "main"
  mesos_var <- "mesos"
  subfolders <- c("sub1", "sub2")
  result <- saros.base:::create_includes_content_path_df(
    files_to_process = files,
    main_directory = main_dir,
    mesos_var = mesos_var,
    mesos_var_subfolders = subfolders
  )

  testthat::expect_equal(result,
    expected = tibble::tibble(
      content = c(
        "{{< include \"../_file1.md\" >}}",
        "{{< include \"../../_file1.md\" >}}", "{{< include \"../../../_file1.md\" >}}",
        "{{< include \"../../../../_file1.md\" >}}"
      ),
      mesos_group = NA_character_, mesos_group_pretty = NA_character_,
      path = fs::as_fs_path(c(
        "main/mesos/sub1/sub2/file1.md",
        "main/mesos/sub1/_file1.md",
        "main/mesos/_file1.md",
        "main/_file1.md"
      ))
    )
  )
})

testthat::test_that("Handles mesos_groups_abbr with subfolders", {
  files <- c("_file1.md")
  main_dir <- "main"
  mesos_var <- "mesos"
  subfolders <- c("sub1")
  groups_abbr <- c("groupA")
  result <- saros.base:::create_includes_content_path_df(
    files_to_process = files,
    main_directory = main_dir,
    mesos_var = mesos_var,
    mesos_var_subfolders = subfolders,
    mesos_groups_abbr = groups_abbr,
    mesos_groups_pretty = "Group A"
  )

  testthat::expect_equal(
    result,
    tibble::tibble(
      content = c(
        "{{< include \"../_file1.md\" >}}",
        "{{< include \"../../_file1.md\" >}}",
        "{{< include \"../../../_file1.md\" >}}",
        "{{< include \"../../../../_file1.md\" >}}"
      ),
      mesos_group = c("groupA", rep(NA_character_, 3)),
      mesos_group_pretty = c("Group A", rep(NA_character_, 3)),
      path = fs::as_fs_path(c(
        "main/mesos/sub1/groupA/file1.md",
        "main/mesos/sub1/_file1.md",
        "main/mesos/_file1.md",
        "main/_file1.md"
      ))
    )
  )
})

testthat::test_that("Handles multiple mesos_groups_abbr", {
  files <- c("_file1.md")
  mesos_var <- "mesos"
  groups_abbr <- c("groupA", "groupB")
  groups_pretty <- c("Group A", "Group B")
  result <- saros.base:::create_includes_content_path_df(
    files_to_process = files,
    mesos_var = mesos_var,
    mesos_groups_abbr = groups_abbr,
    mesos_groups_pretty = groups_pretty
  )

  testthat::expect_equal(
    result,
    tibble::tibble(
      content = c(
        "{{< include \"../_file1.md\" >}}",
        "{{< include \"../_file1.md\" >}}",
        "{{< include \"../../_file1.md\" >}}"
      ),
      mesos_group = c("groupA", "groupB", NA),
      mesos_group_pretty = c("Group A", "Group B", NA),
      path = fs::as_fs_path(c(
        "mesos/groupA/file1.md",
        "mesos/groupB/file1.md",
        "mesos/_file1.md"
      ))
    )
  )
})

testthat::test_that("Handles empty files_to_process", {
  files <- character()
  result <- saros.base:::create_includes_content_path_df(files_to_process = files)

  testthat::expect_equal(result, tibble::tibble())
})

Try the saros.base package in your browser

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

saros.base documentation built on June 8, 2025, 10:03 a.m.