|
| 1 | +# A customized version of vdiffr::expect_doppelganger() that is needed because |
| 2 | +# in 'testthat' versions >= 3.3.0, testthat::expect_snapshot_file() (upon which |
| 3 | +# vdiffr::expect_doppelganger() builds) errors if the snapshot file name has |
| 4 | +# already been used. |
| 5 | +expect_doppelganger_cust <- function(title, |
| 6 | + fig, |
| 7 | + test_filename = "methods_vsel", |
| 8 | + ...) { |
| 9 | + snap_nm_old <- testthat::test_path( |
| 10 | + "_snaps", test_filename, paste0(tolower(gsub("\\.|_", "-", title)), ".svg") |
| 11 | + ) |
| 12 | + if (packageVersion("testthat") >= "3.3.0" && file.exists(snap_nm_old)) { |
| 13 | + variant_tmp <- paste0("tmp_doppelganger__", |
| 14 | + format(Sys.time(), format = "%Y-%m-%d_%H-%M-%S")) |
| 15 | + vdiffr::expect_doppelganger(title, fig, variant = variant_tmp, ...) |
| 16 | + snap_nm_new <- sub("_snaps", file.path("_snaps", variant_tmp), snap_nm_old) |
| 17 | + expect_true(compare_file_text(old = snap_nm_old, |
| 18 | + new = snap_nm_new), |
| 19 | + info = title) |
| 20 | + file.remove(snap_nm_new) |
| 21 | + file.remove(testthat::test_path("_snaps", variant_tmp, test_filename)) |
| 22 | + file.remove(testthat::test_path("_snaps", variant_tmp)) |
| 23 | + } else { |
| 24 | + vdiffr::expect_doppelganger(title = title, fig = fig, ...) |
| 25 | + } |
| 26 | + return(invisible(TRUE)) |
| 27 | +} |
0 commit comments