use crate::document::assemble::decompose;
#[test]
fn multibyte_in_quoted_scalar_parses() {
let single = "~~~card-yaml\n$quill: q@0.1\n$kind: main\nbluf: '\u{2014}leading em-dash'\n~~~\n";
let double =
"~~~card-yaml\n$quill: q@0.1\n$kind: main\nbluf: \"\u{201C}smart-quoted\u{201D}\"\n~~~\n";
for input in [single, double] {
decompose(input).unwrap_or_else(|e| panic!("expected parse to succeed, got: {e}"));
}
}
#[test]
fn multibyte_yaml_errors_reach_the_renderer_char_bounded() {
let inputs = [
"~~~card-yaml\n$quill: q@0.1\n$kind: main\nf\u{2014}o: 1\nf\u{2014}o: 2\n~~~\n",
"~~~card-yaml\n$quill: q@0.1\n$kind: main\nx: hello \u{2014} world\nbluf: *bad-alias\n~~~\n",
"~~~card-yaml\n$quill: q@0.1\n$kind: main\nsystem_name: \u{201C}Service\u{201D}: Order API\n~~~\n",
];
for input in inputs {
let _ = decompose(input);
}
}