Skip to content

Commit b1fdcd6

Browse files
committed
Implement expect_all_true() and expect_all_false()
1 parent 0feafcb commit b1fdcd6

File tree

2 files changed

+39
-7
lines changed

2 files changed

+39
-7
lines changed

R/expect-all.R

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,44 @@ expect_all_equal <- function(object, expected) {
22
act <- quasi_label(enquo(object))
33
exp <- quasi_label(enquo(expected))
44

5-
check_vector(act$val, error_arg = "object")
5+
expect_all_equal_(act, exp)
6+
invisible(act$val)
7+
}
8+
9+
expect_all_true <- function(object) {
10+
act <- quasi_label(enquo(object))
11+
exp <- labelled_value(TRUE, "TRUE")
12+
13+
expect_all_equal_(act, exp)
14+
invisible(act$val)
15+
}
16+
17+
expect_all_false <- function(object) {
18+
act <- quasi_label(enquo(object))
19+
exp <- labelled_value(FALSE, "FALSE")
20+
21+
expect_all_equal_(act, exp)
22+
invisible(act$val)
23+
}
24+
25+
26+
expect_all_equal_ <- function(act, exp, trace_env = caller_env()) {
27+
check_vector(act$val, error_call = trace_env, error_arg = "object")
628
if (length(act$val) == 0) {
7-
cli::cli_abort("{.arg object} must not be empty.")
29+
cli::cli_abort("{.arg object} must not be empty.", call = trace_env)
830
}
931

10-
check_vector(exp$val, error_arg = "expected")
32+
check_vector(exp$val, error_call = trace_env, error_arg = "expected")
1133
if (length(exp$val) != 1) {
12-
cli::cli_abort("{.arg expected} must be length 1.")
34+
cli::cli_abort("{.arg expected} must be length 1.", call = trace_env)
1335
}
1436

1537
exp$val <- rep(exp$val, length(act$val))
1638
names(exp$val) <- names(act$val)
17-
expect_waldo_equal_("Expected every element of %s to equal %s.", act, exp)
18-
19-
invisible(act$val)
39+
expect_waldo_equal_(
40+
"Expected every element of %s to equal %s.",
41+
act,
42+
exp,
43+
trace_env = trace_env
44+
)
2045
}

tests/testthat/test-expect-all.R

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,10 @@ test_that("truncates very long differences", {
2424
x <- rep(TRUE, 10)
2525
expect_snapshot_failure(expect_all_equal(x, FALSE))
2626
})
27+
28+
test_that("has TRUE and FALSE helpers", {
29+
x1 <- rep(TRUE, 10)
30+
x2 <- rep(FALSE, 10)
31+
expect_success(expect_all_true(x1))
32+
expect_success(expect_all_false(x2))
33+
})

0 commit comments

Comments
 (0)