test_that("extra arguments to matches passed onto grepl", { expect_success(expect_match("te*st", "e*", fixed = TRUE)) expect_success(expect_match("test", "TEST", ignore.case = TRUE)) }) test_that("special regex characters are escaped in output", { error <- tryCatch(expect_match("f() test", "f() test"), expectation = function(e) e$message) expect_equal(error, "\"f\\(\\) test\" does not match \"f() test\".\nActual value: \"f\\(\\) test\"") }) test_that("correct reporting of expected label", { expect_failure(expect_match("[a]", "[b]"), escape_regex("[a]"), fixed = TRUE) expect_failure(expect_match("[a]", "[b]", fixed = TRUE), "[a]", fixed = TRUE) }) test_that("errors if obj is empty str", { x <- character(0) err <- expect_error( expect_match(x, 'asdf'), class = "expectation_failure" ) expect_match(err$message, 'is empty') }) test_that("prints multiple unmatched values", { err <- expect_error( expect_match(letters[1:10], 'asdf'), class = "expectation_failure" ) expect_match(err$message, "does not match") }) test_that("expect_no_match works", { expect_success(expect_no_match("[a]", "[b]")) expect_success(expect_no_match("[a]", "[b]", fixed = TRUE)) expect_failure(expect_no_match("te*st", "e*", fixed = TRUE), escape_regex("te*st")) expect_failure(expect_no_match("test", "TEST", ignore.case = TRUE), "test") })