use alba_syntax::{Diagnostic, Span, parse, render_diagnostic};
#[test]
fn diagnostic_new_is_a_public_constructor_for_external_crates() {
let diagnostic = Diagnostic::new(
"custom error",
Some(Span::new(1, 4)),
Some("try this".into()),
);
let rendered = render_diagnostic("a boom b", "Beamfile", &diagnostic);
assert!(rendered.contains("custom error"));
assert!(rendered.contains("try this"));
}
#[test]
fn renders_unknown_field_with_caret_and_help() {
let src = "beam x {\n descriptoin \"typo\"\n}";
let err = parse(src).unwrap_err();
let rendered = render_diagnostic(src, "Beamfile", &err.into_diagnostic());
insta::assert_snapshot!(rendered);
}
#[test]
fn renders_unterminated_string() {
let src = "beam x {\n run \"oops\n}";
let err = parse(src).unwrap_err();
let rendered = render_diagnostic(src, "Beamfile", &err.into_diagnostic());
insta::assert_snapshot!(rendered);
}