Skip to content

Commit

Permalink
712 - {shinytest2} for tm_t_crosstable (#733)
Browse files Browse the repository at this point in the history
Part of
#712

---------

Signed-off-by: kartikeya kirar <[email protected]>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: André Veríssimo <[email protected]>
Co-authored-by: Marcin <[email protected]>
  • Loading branch information
4 people authored Apr 19, 2024
1 parent be86a5a commit 260e3b4
Show file tree
Hide file tree
Showing 2 changed files with 108 additions and 1 deletion.
2 changes: 1 addition & 1 deletion tests/testthat/test-shinytest2-tm_misssing_data.R
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ test_that("e2e - tm_missing_data: Check default settings and visibility of the c
)
)

testthat::expect_equal(app_driver$get_active_module_input("iris-combination_cutoff"), 2L)
testthat::expect_equal(app_driver$get_active_module_input("iris-combination_cutoff"), 1L)
app_driver$set_active_module_input("iris-combination_cutoff", 10L)
app_driver$expect_no_validation_error()

Expand Down
107 changes: 107 additions & 0 deletions tests/testthat/test-shinytest2-tm_t_crosstable.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
app_driver_tm_t_crosstable <- function() {
data <- simple_cdisc_data()
init_teal_app_driver(
data = data,
modules = tm_t_crosstable(
label = "Cross Table",
x = teal.transform::data_extract_spec(
dataname = "ADSL",
select = teal.transform::select_spec(
label = "Select variable:",
choices = teal.transform::variable_choices(data[["ADSL"]], subset = function(data) {
idx <- !vapply(data, inherits, logical(1), c("Date", "POSIXct", "POSIXlt"))
return(names(data)[idx])
}),
selected = "COUNTRY",
multiple = TRUE,
ordered = TRUE,
fixed = FALSE
)
),
y = teal.transform::data_extract_spec(
dataname = "ADSL",
select = teal.transform::select_spec(
label = "Select variable:",
choices = teal.transform::variable_choices(data[["ADSL"]], subset = function(data) {
idx <- vapply(data, is.factor, logical(1))
return(names(data)[idx])
}),
selected = "SEX",
multiple = FALSE,
fixed = FALSE
)
),
show_percentage = TRUE,
show_total = TRUE,
pre_output = NULL,
post_output = NULL,
basic_table_args = teal.widgets::basic_table_args(
subtitles = "Table generated by Crosstable Module"
)
),
timeout = 3000
)
}

test_that("e2e - tm_t_crosstable: Initializes without errors", {
skip_if_too_deep(5)
app_driver <- app_driver_tm_t_crosstable()

app_driver$expect_no_shiny_error()

testthat::expect_equal(
app_driver$get_text("#teal-main_ui-root-active_tab > li.active > a"),
"Cross Table"
)

encoding_dataset <- app_driver$get_text("#teal-main_ui-root-cross_table .help-block")
testthat::expect_match(encoding_dataset, "Dataset:\\n *ADSL\\n", all = FALSE)

app_driver$stop()
})

test_that("e2e - tm_t_crosstable: Verify module displays data table", {
skip_if_too_deep(5)
app_driver <- app_driver_tm_t_crosstable()

# table
testthat::expect_true(app_driver$is_visible(selector = app_driver$active_module_element("table-table-with-settings")))

app_driver$stop()
})

test_that("e2e - tm_t_crosstable: Verify default values and settings (data_extracts) for data selection", {
skip_if_too_deep(5)
app_driver <- app_driver_tm_t_crosstable()

# default variable selection
testthat::expect_equal(
app_driver$get_active_module_input("x-dataset_ADSL_singleextract-select"),
"COUNTRY"
)

testthat::expect_equal(
app_driver$get_active_module_input("y-dataset_ADSL_singleextract-select"),
"SEX"
)

# new variable selection
app_driver$set_active_module_input("x-dataset_ADSL_singleextract-select", c("SEX", "RACE", "COUNTRY"))
app_driver$set_active_module_input("y-dataset_ADSL_singleextract-select", "ETHNIC")
app_driver$expect_no_validation_error()

app_driver$stop()
})

test_that("e2e - tm_t_crosstable: Change plot settings", {
skip_if_too_deep(5)
app_driver <- app_driver_tm_t_crosstable()

app_driver$click(selector = app_driver$active_module_element("show_percentage"))
app_driver$expect_no_validation_error()

app_driver$click(selector = app_driver$active_module_element("show_total"))
app_driver$expect_no_validation_error()

app_driver$stop()
})

0 comments on commit 260e3b4

Please sign in to comment.