use super::prelude::*;
#[derive(Debug)]
pub struct DebugRender;
impl Render for DebugRender {
type Output = String;
#[inline]
fn render(&self, tree: &SyntaxTree) -> String {
format!("{:#?}", tree)
}
}
#[test]
fn debug() {
const OUTPUT: &str = r#"SyntaxTree {
elements: [
Text(
"apple",
),
Text(
" ",
),
Container(
Container {
ctype: Strong,
elements: [
Text(
"banana",
),
],
},
),
],
styles: [
"span.hidden-text { display: none; }",
],
}"#;
let elements = vec![
text!("apple"),
text!(" "),
Element::Container(Container::new(ContainerType::Strong, vec![text!("banana")])),
];
let warnings = vec![];
let styles = vec![cow!("span.hidden-text { display: none; }")];
let result = SyntaxTree::from_element_result(elements, warnings, styles);
let (tree, _) = result.into();
let output = DebugRender.render(&tree);
assert_eq!(
output, OUTPUT,
"Pretty JSON syntax tree output doesn't match",
);
}