From d1cf09256827ee68bb7aa1966f6a1300cacecfb1 Mon Sep 17 00:00:00 2001 From: Pullenss Date: Thu, 20 Aug 2026 10:58:31 +0200 Subject: [PATCH] devided tests into smaller tests --- man/ROvis.echarts-package.Rd | 2 + tests/testthat/test-ro_e_font.R | 38 +++++++++ tests/testthat/test-ro_e_keyboard_nav.R | 61 ++++++++++++++ tests/testthat/test-ro_e_theme.R | 104 ------------------------ tests/testthat/test_ro_e_build.R | 25 ++++++ tests/testthat/test_ro_e_palette.R | 27 ++++++ 6 files changed, 153 insertions(+), 104 deletions(-) create mode 100644 tests/testthat/test-ro_e_font.R create mode 100644 tests/testthat/test-ro_e_keyboard_nav.R create mode 100644 tests/testthat/test_ro_e_build.R create mode 100644 tests/testthat/test_ro_e_palette.R diff --git a/man/ROvis.echarts-package.Rd b/man/ROvis.echarts-package.Rd index 3abf5ef..306ae7b 100644 --- a/man/ROvis.echarts-package.Rd +++ b/man/ROvis.echarts-package.Rd @@ -6,6 +6,8 @@ \alias{ROvis.echarts-package} \title{ROvis.echarts: Rijksoverheid Visualisatie - echarts} \description{ +\if{html}{\figure{logo.png}{options: style='float: right' alt='logo' width='120'}} + ROvis.echarts is an R package that provides a comprehensive suite of functions for making echart plots in rijksoverheid style. } \author{ diff --git a/tests/testthat/test-ro_e_font.R b/tests/testthat/test-ro_e_font.R new file mode 100644 index 0000000..507f9b2 --- /dev/null +++ b/tests/testthat/test-ro_e_font.R @@ -0,0 +1,38 @@ +data_gender <- data.frame( + sex = c("Women", "Men"), + value = c(120, 95) +) + +bar_chart <- function(palette = "gender_con") { + data_gender |> + dplyr::group_by(sex) |> + echarts4r::e_charts(sex) |> + echarts4r::e_bar(value) |> + ro_e_theme(palette = palette) +} + +test_that("ro_e_theme accepts a custom font", { + expect_no_error( + data_gender |> + echarts4r::e_charts(sex) |> + echarts4r::e_bar(value) |> + ro_e_theme(font = "Verdana") + ) +}) + +test_that("ro_e_theme errors when the requested font is not installed", { + expect_error( + data_gender |> + echarts4r::e_charts(sex) |> + echarts4r::e_bar(value) |> + ro_e_theme(font = "ThisFontDoesNotExist_XYZ"), + "Can't find" + ) +}) + +test_that("ro_e_theme_list passes font_family through to tooltip and textStyle", { + theme <- ro_e_theme_list("categorical", "Arial") + + expect_equal(theme$textStyle$fontFamily, "Arial") + expect_equal(theme$tooltip$textStyle$fontFamily, "Arial") +}) diff --git a/tests/testthat/test-ro_e_keyboard_nav.R b/tests/testthat/test-ro_e_keyboard_nav.R new file mode 100644 index 0000000..c17ec5b --- /dev/null +++ b/tests/testthat/test-ro_e_keyboard_nav.R @@ -0,0 +1,61 @@ +data_gender <- data.frame( + sex = c("Women", "Men"), + value = c(120, 95) +) + +bar_chart <- function(palette = "gender_con") { + data_gender |> + dplyr::group_by(sex) |> + echarts4r::e_charts(sex) |> + echarts4r::e_bar(value) |> + ro_e_theme(palette = palette) +} + +test_that("ro_e_keyboard_nav returns an echarts4r object", { + result <- bar_chart() |> + ro_e_keyboard_nav(series_keys = c(w = "Women", m = "Men")) + + expect_true(inherits(result, "echarts4r")) + expect_true(inherits(result, "htmlwidget")) +}) + +test_that("ro_e_keyboard_nav works without series_keys", { + expect_no_error( + bar_chart() |> ro_e_keyboard_nav() + ) +}) + +test_that("ro_e_keyboard_nav works with explicit axis values", { + expect_no_error(bar_chart() |> ro_e_keyboard_nav(axis = "horizontal")) + expect_no_error(bar_chart() |> ro_e_keyboard_nav(axis = "vertical")) + expect_no_error(bar_chart() |> ro_e_keyboard_nav(axis = "both")) +}) + +test_that("ro_e_keyboard_nav errors on invalid axis value", { + expect_error( + bar_chart() |> ro_e_keyboard_nav(axis = "diagonal"), + "diagonal" + ) +}) + +test_that("ro_e_keyboard_nav errors when series_keys names are not single letters", { + expect_error( + bar_chart() |> + ro_e_keyboard_nav(series_keys = c(women = "Women", men = "Men")), + "single letters" + ) +}) + +test_that("ro_e_keyboard_nav errors when series_keys values are empty strings", { + expect_error( + bar_chart() |> ro_e_keyboard_nav(series_keys = c(w = "")), + "non-empty" + ) +}) + +test_that("ro_e_keyboard_nav errors when series_keys is unnamed", { + expect_error( + bar_chart() |> ro_e_keyboard_nav(series_keys = c("Women", "Men")), + "named character vector" + ) +}) diff --git a/tests/testthat/test-ro_e_theme.R b/tests/testthat/test-ro_e_theme.R index 1a18899..2c2e041 100644 --- a/tests/testthat/test-ro_e_theme.R +++ b/tests/testthat/test-ro_e_theme.R @@ -24,21 +24,6 @@ test_that("ro_e_theme applies a theme to the chart", { expect_false(is.null(result$x$theme)) }) -test_that("ro_e_theme works for all palettes", { - expect_no_error(bar_chart("categorical")) - expect_no_error(bar_chart("gender_con")) - expect_no_error(bar_chart("gender_unc")) - expect_no_error(bar_chart("full")) - expect_no_error(bar_chart("greys")) -}) - -test_that("ro_e_theme errors on invalid palette", { - expect_error( - bar_chart("rainbow"), - "rainbow" - ) -}) - test_that("theme applies correct typography settings", { theme <- ro_e_theme_list("categorical", "Verdana") @@ -58,13 +43,6 @@ test_that("theme applies correct typography settings", { expect_equal(theme$tooltip$textStyle$color, "#000000") }) -test_that("ro_e_theme_list passes font_family through to tooltip and textStyle", { - theme <- ro_e_theme_list("categorical", "Arial") - - expect_equal(theme$textStyle$fontFamily, "Arial") - expect_equal(theme$tooltip$textStyle$fontFamily, "Arial") -}) - test_that("theme applies correct axis line and grid settings", { theme <- ro_e_theme_list("categorical", "Verdana") @@ -132,85 +110,3 @@ test_that("ro_e_theme attaches the custom legend onRender hook", { result <- bar_chart() expect_true(length(result$jsHooks$render) > 0) }) - -test_that("ro_e_build_onrender_js bakes in colors, series names and legend markup", { - js <- ro_e_build_onrender_js( - colors = c("#aa0000", "#0000aa"), - series_names = c("Alpha", "Beta"), - font_family = "Verdana", - name_color = "#154273" - ) - expect_match(js, "#aa0000") - expect_match(js, "Alpha") - expect_match(js, "ro-legend-container") - expect_match(js, "legendselectchanged") -}) - -test_that("ro_e_theme accepts a custom font", { - expect_no_error( - data_gender |> - echarts4r::e_charts(sex) |> - echarts4r::e_bar(value) |> - ro_e_theme(font = "Verdana") - ) -}) - -test_that("ro_e_theme errors when the requested font is not installed", { - expect_error( - data_gender |> - echarts4r::e_charts(sex) |> - echarts4r::e_bar(value) |> - ro_e_theme(font = "ThisFontDoesNotExist_XYZ"), - "Can't find" - ) -}) - - -test_that("ro_e_keyboard_nav returns an echarts4r object", { - result <- bar_chart() |> - ro_e_keyboard_nav(series_keys = c(w = "Women", m = "Men")) - - expect_true(inherits(result, "echarts4r")) - expect_true(inherits(result, "htmlwidget")) -}) - -test_that("ro_e_keyboard_nav works without series_keys", { - expect_no_error( - bar_chart() |> ro_e_keyboard_nav() - ) -}) - -test_that("ro_e_keyboard_nav works with explicit axis values", { - expect_no_error(bar_chart() |> ro_e_keyboard_nav(axis = "horizontal")) - expect_no_error(bar_chart() |> ro_e_keyboard_nav(axis = "vertical")) - expect_no_error(bar_chart() |> ro_e_keyboard_nav(axis = "both")) -}) - -test_that("ro_e_keyboard_nav errors on invalid axis value", { - expect_error( - bar_chart() |> ro_e_keyboard_nav(axis = "diagonal"), - "diagonal" - ) -}) - -test_that("ro_e_keyboard_nav errors when series_keys names are not single letters", { - expect_error( - bar_chart() |> - ro_e_keyboard_nav(series_keys = c(women = "Women", men = "Men")), - "single letters" - ) -}) - -test_that("ro_e_keyboard_nav errors when series_keys values are empty strings", { - expect_error( - bar_chart() |> ro_e_keyboard_nav(series_keys = c(w = "")), - "non-empty" - ) -}) - -test_that("ro_e_keyboard_nav errors when series_keys is unnamed", { - expect_error( - bar_chart() |> ro_e_keyboard_nav(series_keys = c("Women", "Men")), - "named character vector" - ) -}) diff --git a/tests/testthat/test_ro_e_build.R b/tests/testthat/test_ro_e_build.R new file mode 100644 index 0000000..2442ec4 --- /dev/null +++ b/tests/testthat/test_ro_e_build.R @@ -0,0 +1,25 @@ +data_gender <- data.frame( + sex = c("Women", "Men"), + value = c(120, 95) +) + +bar_chart <- function(palette = "gender_con") { + data_gender |> + dplyr::group_by(sex) |> + echarts4r::e_charts(sex) |> + echarts4r::e_bar(value) |> + ro_e_theme(palette = palette) +} + +test_that("ro_e_build_onrender_js bakes in colors, series names and legend markup", { + js <- ro_e_build_onrender_js( + colors = c("#aa0000", "#0000aa"), + series_names = c("Alpha", "Beta"), + font_family = "Verdana", + name_color = "#154273" + ) + expect_match(js, "#aa0000") + expect_match(js, "Alpha") + expect_match(js, "ro-legend-container") + expect_match(js, "legendselectchanged") +}) diff --git a/tests/testthat/test_ro_e_palette.R b/tests/testthat/test_ro_e_palette.R new file mode 100644 index 0000000..5a0e181 --- /dev/null +++ b/tests/testthat/test_ro_e_palette.R @@ -0,0 +1,27 @@ +data_gender <- data.frame( + sex = c("Women", "Men"), + value = c(120, 95) +) + +bar_chart <- function(palette = "gender_con") { + data_gender |> + dplyr::group_by(sex) |> + echarts4r::e_charts(sex) |> + echarts4r::e_bar(value) |> + ro_e_theme(palette = palette) +} + +test_that("ro_e_theme works for all palettes", { + expect_no_error(bar_chart("categorical")) + expect_no_error(bar_chart("gender_con")) + expect_no_error(bar_chart("gender_unc")) + expect_no_error(bar_chart("full")) + expect_no_error(bar_chart("greys")) +}) + +test_that("ro_e_theme errors on invalid palette", { + expect_error( + bar_chart("rainbow"), + "rainbow" + ) +})