use crate::prelude::*;
use anyhow::Result;
use colorize::*;
use test::TestDesc;
#[derive(Debug, Default)]
pub struct SweetCaseLogger;
impl SweetCaseLogger {
fn log_case_result_sweetly(&self, case: &TestDescAndResult) {
let status = case.result.status_prefix();
let file = self.case_pretty_path(&case.desc);
let name = test_desc_ext::short_name(&case.desc).bold();
let message = case.result.message();
beet_utils::cross_log!("{status} {file}\t{name}{message}");
}
fn case_pretty_path(&self, desc: &TestDesc) -> String {
let mut out = pretty_file_path(&desc.source_file);
out.push_str(&format!(":{}", desc.start_line).faint());
return out;
}
}
impl CaseLogger for SweetCaseLogger {
fn on_result(&mut self, result: &mut TestDescAndResult) -> Result<()> {
self.log_case_result_sweetly(&result);
Ok(())
}
}