diff --git a/tests/cases/markdownlint-cli2/failure/test.toml b/tests/cases/markdownlint-cli2/failure/test.toml index 11adb99..5f14b96 100644 --- a/tests/cases/markdownlint-cli2/failure/test.toml +++ b/tests/cases/markdownlint-cli2/failure/test.toml @@ -3,7 +3,7 @@ args = "run --full markdownlint-cli2" exit = 1 stderr = ''' [markdownlint-cli2] -markdownlint-cli2 v0.17.2 (markdownlint v0.37.4) +markdownlint-cli2 Finding: /README.md Linting: 1 file(s) Summary: 1 error(s) diff --git a/tests/e2e.rs b/tests/e2e.rs index 7eeba5e..107013c 100644 --- a/tests/e2e.rs +++ b/tests/e2e.rs @@ -271,12 +271,12 @@ fn run_case(case: &Path, name: &str, update: bool) { let repo_canonical_str = canonical_repo_path(repo.path()); let normalize = |s: String| -> String { normalize_output(s, repo_str.as_ref(), &repo_canonical_str) }; - let stderr = normalize_timing(&strip_ansi(&normalize( + let stderr = normalize_tool_versions(&normalize_timing(&strip_ansi(&normalize( String::from_utf8_lossy(&out.stderr).into_owned(), - ))); - let stdout = normalize_timing(&strip_ansi(&normalize( + )))); + let stdout = normalize_tool_versions(&normalize_timing(&strip_ansi(&normalize( String::from_utf8_lossy(&out.stdout).into_owned(), - ))); + )))); if update { write_test_toml( @@ -391,6 +391,17 @@ fn normalize_timing(s: &str) -> String { .into_owned() } +/// Replaces tool version banners with a stable `` placeholder so +/// snapshots don't need updating on every dependency bump. +fn normalize_tool_versions(s: &str) -> String { + use regex::Regex; + // markdownlint-cli2 vX.Y.Z (markdownlint vA.B.C) + let re = + Regex::new(r"markdownlint-cli2 v\d+\.\d+\.\d+ \(markdownlint v\d+\.\d+\.\d+\)").unwrap(); + re.replace_all(s, "markdownlint-cli2 ") + .into_owned() +} + /// Strips ANSI/VT escape sequences (colour codes, character-set switches, etc.). /// TOML strings cannot contain raw control characters, so these must be removed. fn strip_ansi(s: &str) -> String {