Skip to content

Commit 3822689

Browse files
committed
test(examples): Verify output
1 parent ca1b25a commit 3822689

11 files changed

+300
-9
lines changed

Cargo.lock

+37
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,12 @@ itertools = "0.12.1"
2929
unicode-width = "0.1.11"
3030

3131
[dev-dependencies]
32+
anstream = "0.6.13"
3233
criterion = "0.5.1"
3334
difference = "2.0.0"
3435
glob = "0.3.1"
3536
serde = { version = "1.0.197", features = ["derive"] }
36-
snapbox = { version = "0.5.8", features = ["diff", "harness", "path", "term-svg"] }
37+
snapbox = { version = "0.5.8", features = ["diff", "harness", "path", "term-svg", "cmd", "examples"] }
3738
toml = "0.5.11"
3839

3940
[[bench]]

examples/expected_type.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ fn main() {
1818
.annotation(Label::info("while parsing this struct").span(34..50)),
1919
);
2020

21-
let renderer = Renderer::plain();
22-
println!("{}", renderer.render(snippet));
21+
let renderer = Renderer::styled();
22+
anstream::println!("{}", renderer.render(snippet));
2323
}

examples/expected_type.svg

+44
Loading

examples/footer.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ fn main() {
1717
"expected type: `snippet::Annotation`\n found type: `__&__snippet::Annotation`",
1818
));
1919

20-
let renderer = Renderer::plain();
21-
println!("{}", renderer.render(snippet));
20+
let renderer = Renderer::styled();
21+
anstream::println!("{}", renderer.render(snippet));
2222
}

examples/footer.svg

+43
Loading

examples/format.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@ fn main() {
3232
.annotation(Label::error("expected enum `std::option::Option`").span(26..724)),
3333
);
3434

35-
let renderer = Renderer::plain();
36-
println!("{}", renderer.render(snippet));
35+
let renderer = Renderer::styled();
36+
anstream::println!("{}", renderer.render(snippet));
3737
}

examples/format.svg

+85
Loading

examples/multislice.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ fn main() {
55
.slice(Slice::new("Foo", 51).origin("src/format.rs"))
66
.slice(Slice::new("Faa", 129).origin("src/display.rs"));
77

8-
let renderer = Renderer::plain();
9-
println!("{}", renderer.render(snippet));
8+
let renderer = Renderer::styled();
9+
anstream::println!("{}", renderer.render(snippet));
1010
}

examples/multislice.svg

+44
Loading

tests/examples.rs

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#[test]
2+
fn expected_type() {
3+
let target = "expected_type";
4+
let expected = snapbox::file!["../examples/expected_type.svg": TermSvg];
5+
assert_example(target, expected);
6+
}
7+
8+
#[test]
9+
fn footer() {
10+
let target = "footer";
11+
let expected = snapbox::file!["../examples/footer.svg": TermSvg];
12+
assert_example(target, expected);
13+
}
14+
15+
#[test]
16+
fn format() {
17+
let target = "format";
18+
let expected = snapbox::file!["../examples/format.svg": TermSvg];
19+
assert_example(target, expected);
20+
}
21+
22+
#[test]
23+
fn multislice() {
24+
let target = "multislice";
25+
let expected = snapbox::file!["../examples/multislice.svg": TermSvg];
26+
assert_example(target, expected);
27+
}
28+
29+
#[track_caller]
30+
fn assert_example(target: &str, expected: snapbox::Data) {
31+
let bin_path = snapbox::cmd::compile_example(target, []).unwrap();
32+
snapbox::cmd::Command::new(bin_path)
33+
.env("CLICOLOR_FORCE", "1")
34+
.assert()
35+
.success()
36+
.stdout_eq(expected);
37+
}

0 commit comments

Comments
 (0)