use panache::{Config, format};
#[test]
fn test_raw_inline_html() {
let input = "This is `<a>html</a>`{=html} text.";
let config = Config::default();
let output = format(input, Some(config), None);
assert_eq!(output.trim(), "This is `<a>html</a>`{=html} text.");
}
#[test]
fn test_raw_inline_latex() {
let input = r"This is `\LaTeX`{=latex} formatted.";
let config = Config::default();
let output = format(input, Some(config), None);
assert_eq!(output.trim(), r"This is `\LaTeX`{=latex} formatted.");
}
#[test]
fn test_raw_inline_openxml() {
let input = "This is `<w:br/>`{=openxml} a pagebreak.";
let config = Config::default();
let output = format(input, Some(config), None);
assert_eq!(output.trim(), "This is `<w:br/>`{=openxml} a pagebreak.");
}
#[test]
fn test_raw_inline_with_double_backticks() {
let input = "This is `` `backtick` ``{=html} text.";
let config = Config::default();
let output = format(input, Some(config), None);
assert_eq!(output.trim(), "This is `` `backtick` ``{=html} text.");
}
#[test]
fn test_raw_inline_disabled() {
let input = "This is `<a>html</a>`{=html} text.";
let mut config = Config::default();
config.extensions.raw_attribute = false;
let output = format(input, Some(config), None);
assert_eq!(output.trim(), "This is `<a>html</a>`{=html} text.");
}
#[test]
fn test_code_span_with_regular_class() {
let input = "This is `code`{.python} text.";
let config = Config::default();
let output = format(input, Some(config), None);
assert_eq!(output.trim(), "This is `code`{.python} text.");
}
#[test]
fn test_raw_inline_mixed_with_code_spans() {
let input = "Regular `code` and raw `<html>`{=html} in one sentence.";
let config = Config::default();
let output = format(input, Some(config), None);
assert_eq!(
output.trim(),
"Regular `code` and raw `<html>`{=html} in one sentence."
);
}
#[test]
fn test_raw_inline_multiple_formats() {
let input = "HTML `<a>`{=html} and LaTeX `\\cmd`{=latex} together.";
let config = Config::default();
let output = format(input, Some(config), None);
assert_eq!(
output.trim(),
"HTML `<a>`{=html} and LaTeX `\\cmd`{=latex} together."
);
}
#[test]
fn test_raw_inline_preservation() {
let input = "Raw ` spaced content `{=html} here.";
let config = Config::default();
let output = format(input, Some(config), None);
assert_eq!(output.trim(), "Raw ` spaced content `{=html} here.");
}