mirror of https://github.com/zkat/miette.git
Add test verifying diagnostic
This commit is contained in:
parent
3914726ddb
commit
1643cabd95
|
|
@ -1,5 +1,16 @@
|
|||
use miette::Diagnostic;
|
||||
|
||||
#[derive(Debug, miette::Diagnostic, thiserror::Error)]
|
||||
#[error("A complex error happened")]
|
||||
struct SourceError {
|
||||
#[source_code]
|
||||
code: String,
|
||||
#[help]
|
||||
help: String,
|
||||
#[label("here")]
|
||||
label: (usize, usize),
|
||||
}
|
||||
|
||||
#[derive(Debug, miette::Diagnostic, thiserror::Error)]
|
||||
#[error("AnErr")]
|
||||
struct AnErr;
|
||||
|
|
@ -59,3 +70,34 @@ fn test_diagnostic_source() {
|
|||
let error = TestArcedError(std::sync::Arc::new(AnErr));
|
||||
assert!(error.diagnostic_source().is_some());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_diagnostic_source_pass_extra_info() {
|
||||
let diag = TestBoxedError(Box::new(SourceError {
|
||||
code: String::from("Hello\nWorld!"),
|
||||
help: format!("Have you tried turning it on and off again?"),
|
||||
label: (1, 4),
|
||||
}));
|
||||
let mut out = String::new();
|
||||
miette::GraphicalReportHandler::new_themed(miette::GraphicalTheme::unicode_nocolor())
|
||||
.with_width(80)
|
||||
.with_footer("this is a footer".into())
|
||||
.render_report(&mut out, &diag)
|
||||
.unwrap();
|
||||
println!("Error: {}", out);
|
||||
let expected = r#" × TestError
|
||||
╰─▶ × A complex error happened
|
||||
╭─[1:1]
|
||||
1 │ Hello
|
||||
· ──┬─
|
||||
· ╰── here
|
||||
2 │ World!
|
||||
╰────
|
||||
help: Have you tried turning it on and off again?
|
||||
|
||||
|
||||
this is a footer
|
||||
"#
|
||||
.to_string();
|
||||
assert_eq!(expected, out);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue