Skip to content

Commit e5a05c7

Browse files
committed
test: Snippet with no path
1 parent ca9f5e5 commit e5a05c7

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

tests/formatter.rs

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2753,3 +2753,71 @@ fn main() {
27532753
let renderer = Renderer::plain();
27542754
renderer.render(input);
27552755
}
2756+
2757+
#[test]
2758+
fn snippet_no_path() {
2759+
// Taken from: https://docs.python.org/3/library/typing.html#annotating-callable-objects
2760+
2761+
let source = "def __call__(self, *vals: bytes, maxlen: int | None = None) -> list[bytes]: ...";
2762+
let input = &[Group::with_title(Level::ERROR.title("")).element(
2763+
Snippet::source(source).annotation(AnnotationKind::Primary.span(4..12).label("annotation")),
2764+
)];
2765+
2766+
let expected_ascii = str![[r#"
2767+
error:
2768+
|
2769+
1 | def __call__(self, *vals: bytes, maxlen: int | None = None) -> list[bytes]: ...
2770+
| ^^^^^^^^ annotation
2771+
"#]];
2772+
let renderer = Renderer::plain();
2773+
assert_data_eq!(renderer.render(input), expected_ascii);
2774+
2775+
let expected_unicode = str![[r#"
2776+
error:
2777+
2778+
1 │ def __call__(self, *vals: bytes, maxlen: int | None = None) -> list[bytes]: ...
2779+
╰╴ ━━━━━━━━ annotation
2780+
"#]];
2781+
let renderer = Renderer::plain().theme(OutputTheme::Unicode);
2782+
assert_data_eq!(renderer.render(input), expected_unicode);
2783+
}
2784+
2785+
#[test]
2786+
fn snippet_no_path2() {
2787+
// Taken from: https://docs.python.org/3/library/typing.html#annotating-callable-objects
2788+
2789+
let source = "def __call__(self, *vals: bytes, maxlen: int | None = None) -> list[bytes]: ...";
2790+
let input = &[Group::with_title(Level::ERROR.title(""))
2791+
.element(
2792+
Snippet::source(source)
2793+
.annotation(AnnotationKind::Primary.span(4..12).label("annotation")),
2794+
)
2795+
.element(
2796+
Snippet::source(source)
2797+
.annotation(AnnotationKind::Primary.span(4..12).label("annotation")),
2798+
)];
2799+
2800+
let expected_ascii = str![[r#"
2801+
error:
2802+
|
2803+
1 | def __call__(self, *vals: bytes, maxlen: int | None = None) -> list[bytes]: ...
2804+
| ^^^^^^^^ annotation
2805+
|
2806+
1 | def __call__(self, *vals: bytes, maxlen: int | None = None) -> list[bytes]: ...
2807+
| ^^^^^^^^ annotation
2808+
"#]];
2809+
let renderer = Renderer::plain();
2810+
assert_data_eq!(renderer.render(input), expected_ascii);
2811+
2812+
let expected_unicode = str![[r#"
2813+
error:
2814+
2815+
1 │ def __call__(self, *vals: bytes, maxlen: int | None = None) -> list[bytes]: ...
2816+
│ ━━━━━━━━ annotation
2817+
2818+
1 │ def __call__(self, *vals: bytes, maxlen: int | None = None) -> list[bytes]: ...
2819+
╰╴ ━━━━━━━━ annotation
2820+
"#]];
2821+
let renderer = Renderer::plain().theme(OutputTheme::Unicode);
2822+
assert_data_eq!(renderer.render(input), expected_unicode);
2823+
}

0 commit comments

Comments
 (0)