use scoped_error::{Error, ErrorExt, expect_error};
fn do_work() -> Result<(), Error> {
expect_error("Failed to do something", || {
internal()?;
Ok(())
})
}
fn internal() -> Result<(), Error> {
expect_error("Failed due to internal error", || {
Err("Failed to perform IO")?;
Ok(())
})
}
#[test]
fn it_works() {
let Err(error) = do_work() else {
panic!("unexpected success");
};
assert_eq!(
error.report().to_string(),
"Failed to do something, at tests/basic.rs:9:9\n|-- Failed due to internal error, at tests/basic.rs:15:9\n`-- Failed to perform IO"
);
}