Skip to content

Commit deadbbc

Browse files
committed
fix(cli): correct normalize continue-on-error summary counts
1 parent 7cd0e76 commit deadbbc

2 files changed

Lines changed: 37 additions & 0 deletions

File tree

langcodec-cli/src/normalize.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ pub fn run_normalize_command(opts: NormalizeCliOptions) -> Result<(), String> {
170170
if opts.continue_on_error {
171171
eprintln!("❌ {}", msg);
172172
failures.push(msg);
173+
processed_count += 1;
173174
failed_count += 1;
174175
skip_missing.insert(original.clone());
175176
continue;

langcodec-cli/tests/normalize_cli_tests.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,3 +232,39 @@ fn test_normalize_continue_on_error_aggregates_and_returns_non_zero() {
232232
"expected successful file processing to continue, got: {combined}"
233233
);
234234
}
235+
236+
#[test]
237+
fn test_normalize_continue_on_error_counts_literal_missing_input_in_summary() {
238+
let temp_dir = TempDir::new().unwrap();
239+
let good = temp_dir.path().join("good.strings");
240+
let missing = temp_dir.path().join("missing.strings");
241+
fs::write(&good, "\"z\" = \"%@\";\n\"a\" = \"A\";\n").unwrap();
242+
243+
let output = langcodec_cmd()
244+
.args([
245+
"normalize",
246+
"-i",
247+
missing.to_str().unwrap(),
248+
good.to_str().unwrap(),
249+
"--continue-on-error",
250+
])
251+
.output()
252+
.unwrap();
253+
254+
assert!(
255+
!output.status.success(),
256+
"expected non-zero when at least one file fails"
257+
);
258+
let stdout = String::from_utf8_lossy(&output.stdout);
259+
let stderr = String::from_utf8_lossy(&output.stderr);
260+
let combined = format!("{stdout}{stderr}");
261+
262+
assert!(
263+
combined.contains("Input file does not exist"),
264+
"expected missing-input error, got: {combined}"
265+
);
266+
assert!(
267+
combined.contains("Summary: processed 2; success: 1; failed: 1"),
268+
"expected coherent summary counts, got: {combined}"
269+
);
270+
}

0 commit comments

Comments
 (0)