Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions man/ROvis.echarts-package.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

38 changes: 38 additions & 0 deletions tests/testthat/test-ro_e_font.R
Original file line number Diff line number Diff line change
@@ -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")
})
61 changes: 61 additions & 0 deletions tests/testthat/test-ro_e_keyboard_nav.R
Original file line number Diff line number Diff line change
@@ -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"
)
})
104 changes: 0 additions & 104 deletions tests/testthat/test-ro_e_theme.R
Original file line number Diff line number Diff line change
Expand Up @@ -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")

Expand All @@ -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")

Expand Down Expand Up @@ -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"
)
})
25 changes: 25 additions & 0 deletions tests/testthat/test_ro_e_build.R
Original file line number Diff line number Diff line change
@@ -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")
})
27 changes: 27 additions & 0 deletions tests/testthat/test_ro_e_palette.R
Original file line number Diff line number Diff line change
@@ -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"
)
})