From 0956fc786693afb23ce2e6e61b212ccbb0eafd2c Mon Sep 17 00:00:00 2001 From: Ed Page Date: Wed, 3 Sep 2025 08:42:42 -0500 Subject: [PATCH] test: Show tab behavior Closes #25 --- tests/formatter.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/tests/formatter.rs b/tests/formatter.rs index a39fd1b1..1b0287f8 100644 --- a/tests/formatter.rs +++ b/tests/formatter.rs @@ -4192,3 +4192,46 @@ error: invalid character `^` in path base name: `^^not-valid^^`, the first chara let renderer = renderer.decor_style(DecorStyle::Unicode); assert_data_eq!(renderer.render(input), expected_unicode); } + +#[test] +fn tab() { + let source = " + t +\tt +"; + + let title = "showing how tabs are rendered"; + + let input = &[ + Group::with_title(Level::ERROR.primary_title(title)).element( + Snippet::source(source) + .path("tabbed.txt") + .annotation(AnnotationKind::Primary.span(2..3)) + .annotation(AnnotationKind::Context.span(5..6)), + ), + ]; + + let expected_ascii = str![[r#" +error: showing how tabs are rendered + --> tabbed.txt:2:2 + | +2 | t + | ^ +3 | t + | - +"#]]; + let renderer = Renderer::plain(); + assert_data_eq!(renderer.render(input), expected_ascii); + + let expected_unicode = str![[r#" +error: showing how tabs are rendered + ╭▸ tabbed.txt:2:2 + │ +2 │ t + │ ━ +3 │ t + ╰╴ ─ +"#]]; + let renderer = renderer.decor_style(DecorStyle::Unicode); + assert_data_eq!(renderer.render(input), expected_unicode); +}