diff --git a/cli/tests/integration/fmt_tests.rs b/cli/tests/integration/fmt_tests.rs index 18ad2ab295..3f4bc15cbe 100644 --- a/cli/tests/integration/fmt_tests.rs +++ b/cli/tests/integration/fmt_tests.rs @@ -177,6 +177,12 @@ itest!(fmt_check_ignore { exit_code: 0, }); +itest!(fmt_check_parse_error { + args: "fmt --check fmt/parse_error/parse_error.ts", + output: "fmt/fmt_check_parse_error.out", + exit_code: 1, +}); + itest!(fmt_stdin { args: "fmt -", input: Some("const a = 1\n"), diff --git a/cli/tests/testdata/fmt/fmt_check_parse_error.out b/cli/tests/testdata/fmt/fmt_check_parse_error.out new file mode 100644 index 0000000000..d9b918af7b --- /dev/null +++ b/cli/tests/testdata/fmt/fmt_check_parse_error.out @@ -0,0 +1,6 @@ +Error checking: [WILDCARD] + Line 2, column 7: Expected '{', got '' + + class Test + ~~~~ +error: Found 1 not formatted file in 1 file diff --git a/cli/tests/testdata/fmt/parse_error/parse_error.ts b/cli/tests/testdata/fmt/parse_error/parse_error.ts new file mode 100644 index 0000000000..136d165080 --- /dev/null +++ b/cli/tests/testdata/fmt/parse_error/parse_error.ts @@ -0,0 +1,2 @@ +// a file that purposefully will cause an error +class Test diff --git a/cli/tools/fmt.rs b/cli/tools/fmt.rs index 3eb6209002..4e399bcf56 100644 --- a/cli/tools/fmt.rs +++ b/cli/tools/fmt.rs @@ -316,6 +316,7 @@ async fn check_source_files( incremental_cache.update_file(&file_path, &file_text); } Err(e) => { + not_formatted_files_count.fetch_add(1, Ordering::Relaxed); let _g = output_lock.lock(); eprintln!("Error checking: {}", file_path.to_string_lossy()); eprintln!(" {}", e); diff --git a/tools/lint.js b/tools/lint.js index 7a77c09ae0..18be09c657 100755 --- a/tools/lint.js +++ b/tools/lint.js @@ -26,6 +26,7 @@ async function dlint() { ":!:cli/dts/**", ":!:cli/tests/testdata/encoding/**", ":!:cli/tests/testdata/error_syntax.js", + ":!:cli/tests/testdata/fmt/**", ":!:cli/tests/testdata/lint/**", ":!:cli/tests/testdata/tsc/**", ":!:cli/tsc/*typescript.js",