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;
|
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)]
|
#[derive(Debug, miette::Diagnostic, thiserror::Error)]
|
||||||
#[error("AnErr")]
|
#[error("AnErr")]
|
||||||
struct AnErr;
|
struct AnErr;
|
||||||
|
|
@ -59,3 +70,34 @@ fn test_diagnostic_source() {
|
||||||
let error = TestArcedError(std::sync::Arc::new(AnErr));
|
let error = TestArcedError(std::sync::Arc::new(AnErr));
|
||||||
assert!(error.diagnostic_source().is_some());
|
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