From 4fb2c1a0d4357ff9587138dd9e6cae32de91e0a9 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Mon, 24 Nov 2025 16:58:23 -0500 Subject: [PATCH] Always report success/failure count --- R/expect-self-test.R | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/R/expect-self-test.R b/R/expect-self-test.R index a4dd18601..1e667284a 100644 --- a/R/expect-self-test.R +++ b/R/expect-self-test.R @@ -44,17 +44,13 @@ capture_success_failure <- function(expr) { expect_success <- function(expr) { status <- capture_success_failure(expr) - expected <- "Expected exactly one success and no failures." - if (status$n_success != 1) { - actual <- sprintf("Actually succeeded %i times", status$n_success) - fail(c(expected, actual)) - } else if (status$n_failure > 0) { - actual <- sprintf("Actually failed %i times", status$n_failure) - fail(c(expected, actual)) - } else { + if (status$n_success == 1 && status$n_failure == 0) { pass() + return(invisible()) } - + expected <- "Expected exactly one success and no failures." + actual <- sprintf("Actually succeeded %i times and failed %i times.", status$n_success, status$n_failure) + fail(c(expected, actual)) invisible() } @@ -63,21 +59,19 @@ expect_success <- function(expr) { expect_failure <- function(expr, message = NULL, ...) { status <- capture_success_failure(expr) - expected <- "Expected exactly one failure and no successes." - if (status$n_failure != 1) { - actual <- sprintf("Actually failed %i times", status$n_failure) - fail(c(expected, actual)) - } else if (status$n_success != 0) { - actual <- sprintf("Actually succeeded %i times", status$n_success) - fail(c(expected, actual)) - } else { + if (status$n_failure == 1 && status$n_failure == 0) { if (is.null(message)) { pass() } else { act <- labelled_value(status$last_failure$message, "failure message") expect_match_(act, message, ..., title = "message") } + return(invisible()) } + + expected <- "Expected exactly one failure and no successes." + actual <- sprintf("Actually succeeded %i times and failed %i times.", status$n_success, status$n_failure) + fail(c(expected, actual)) invisible() }