diff --git a/R/choices_selected.R b/R/choices_selected.R index a12a5d3c..66cf88e8 100644 --- a/R/choices_selected.R +++ b/R/choices_selected.R @@ -152,6 +152,11 @@ choices_selected <- function(choices, } if (inherits(choices, "delayed_data")) { + if (is.character(selected) && !inherits(choices, "delayed_variable_choices")) { + if (!all(selected %in% choices$var_choices) || !all(selected %in% choices$var_label)) { + stop("Selected, '", selected, "' is not in the available choices.") + } + } return( structure( list(choices = choices, selected = selected, keep_order = keep_order, fixed = fixed), diff --git a/tests/testthat/test-choices_selected.R b/tests/testthat/test-choices_selected.R index 4cf40b41..45f5e8dc 100644 --- a/tests/testthat/test-choices_selected.R +++ b/tests/testthat/test-choices_selected.R @@ -70,6 +70,12 @@ testthat::test_that("choices_selected throws error when selected is not found in choices_selected(choices = c("a"), selected = c("c", "b")), "Must be a subset of \\{'a'\\}" ) + testthat::expect_error( + choices_selected( + value_choices("ADTTE", "PARAMCD", "PARAM"), + "OS" + ) + ) }) testthat::test_that("delayed_choices select the desired choices", {