diff --git a/NEWS.md b/NEWS.md index ac2aff12f..5bb8c28db 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,6 @@ # testthat (development version) +* `expect_snapshot()` now errors when called from a `test_that()` that has an empty description (@kevinushey, #1980). * `skip_if_not_installed()` produces a clearer message (@MichaelChirico, #1959). * `with_mock()` and `local_mock()` have been unconditionally deprecated as they will no longer work in future versions of R (#1999). * `expect_condition()` and friends now include the `class` of the expected condition in the failure mesage, if used (#1987). diff --git a/R/snapshot-reporter.R b/R/snapshot-reporter.R index f88040584..ebedcde65 100644 --- a/R/snapshot-reporter.R +++ b/R/snapshot-reporter.R @@ -46,6 +46,7 @@ SnapshotReporter <- R6::R6Class("SnapshotReporter", tolerance = testthat_tolerance(), variant = NULL, trace_env = NULL) { + check_string(self$test, allow_empty = FALSE) i <- self$new_snaps$append(self$test, variant, save(value)) old_raw <- self$old_snaps$get(self$test, variant, i) diff --git a/tests/testthat/test-snapshot.R b/tests/testthat/test-snapshot.R index ff15d1de4..5e514a112 100644 --- a/tests/testthat/test-snapshot.R +++ b/tests/testthat/test-snapshot.R @@ -167,3 +167,11 @@ test_that("hint is informative", { cat(snapshot_accept_hint("foo", "bar.R", reset_output = FALSE)) }) }) + +test_that("expect_snapshot requires a non-empty test label", { + + test_that("", { + expect_error(expect_snapshot(1 + 1)) + }) + +})