Skip to content

Commit c1831e2

Browse files
authored
Add invert argument to collect_cases() and manage_cases() (#82)
1 parent 939debf commit c1831e2

File tree

5 files changed

+39
-8
lines changed

5 files changed

+39
-8
lines changed

R/cases-ui.R

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44
#' @inheritParams shiny::shinyApp
55
#' @param package Package description, can be path or package
66
#' name. See [devtools::as.package()] for more information.
7+
#' @param invert should the regexp supplied to `filter` be inverted? Defaults to `FALSE`.
78
#' @param ... Unused.
89
#' @seealso [vdiffrAddin()], [collect_cases()], and [validate_cases()]
910
#' @export
10-
manage_cases <- function(package = ".", filter = NULL, ..., options = list()) {
11-
cases <- collect_cases(package, filter = filter)
11+
manage_cases <- function(package = ".", filter = NULL,
12+
invert = FALSE, ..., options = list()) {
13+
cases <- collect_cases(package, filter = filter, invert = invert)
1214
cases <- filter_cases(cases, c("new_case", "mismatch_case", "orphaned_case", "success_case"))
1315

1416
vdiffrApp <- shiny::shinyApp(

R/cases.R

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,21 @@
1010
#' `collect_mismatched_cases()` and `collect_orphaned_cases()`
1111
#' return a filtered `cases` object.
1212
#' @export
13-
collect_cases <- function(package = ".", filter = NULL) {
13+
collect_cases <- function(package = ".", filter = NULL, invert = FALSE) {
1414
on.exit(set_active_collecter(NULL))
1515

1616
message("Running testthat to collect visual cases\n\n",
1717
" N = New visual case\n X = Failed doppelganger\n o = Successful doppelganger\n")
1818
package <- devtools::as.package(package)
1919
reporter <- vdiffrReporter$new(package$path)
20-
suppressMessages(devtools::test(package, filter = filter, reporter = reporter))
20+
suppressMessages(
21+
devtools::test(
22+
package,
23+
filter = filter,
24+
reporter = reporter,
25+
invert = invert
26+
)
27+
)
2128

2229
cases <- active_collecter()$get_cases()
2330

man/collect_cases.Rd

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/manage_cases.Rd

Lines changed: 5 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/testthat/test-filter.R

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
context("Filtering")
2+
3+
test_that("Can filter to test certain cases", {
4+
mock_pkg_dir <- create_mock_pkg("mock-pkg")
5+
mock_test_dir <- file.path(mock_pkg_dir, "tests", "testthat")
6+
cases <- collect_cases(mock_test_dir, filter = "ggplot")
7+
case_contexts <- purrr::map_chr(cases, "context")
8+
expect_true(all(case_contexts == "ggplot"))
9+
})
10+
11+
test_that("Can invert filtering of test cases", {
12+
mock_pkg_dir <- create_mock_pkg("mock-pkg")
13+
mock_test_dir <- file.path(mock_pkg_dir, "tests", "testthat")
14+
cases <- collect_cases(mock_test_dir, filter = "ggplot", invert = TRUE)
15+
case_contexts <- purrr::map_chr(cases, "context")
16+
expect_false("ggplot" %in% case_contexts)
17+
})

0 commit comments

Comments
 (0)