extern crate micromark; use micromark::{micromark, micromark_with_options, LineEnding, Options}; use pretty_assertions::assert_eq; #[test] fn default_line_ending() -> Result<(), String> { assert_eq!( micromark("> a"), "
\n

a

\n
", "should use `\\n` default" ); assert_eq!( micromark("> a\n"), "
\n

a

\n
\n", "should infer the first line ending (1)" ); assert_eq!( micromark("> a\r"), "
\r

a

\r
\r", "should infer the first line ending (2)" ); assert_eq!( micromark("> a\r\n"), "
\r\n

a

\r\n
\r\n", "should infer the first line ending (3)" ); assert_eq!( micromark_with_options( "> a", &Options { default_line_ending: LineEnding::CarriageReturn, ..Options::default() } )?, "
\r

a

\r
", "should support the given line ending" ); assert_eq!( micromark_with_options( "> a\n", &Options { default_line_ending: LineEnding::CarriageReturn, ..Options::default() } )?, // To do: is this a bug in `micromark.js` that it uses `\r` for earlier line endings? // "
\r

a

\r
\n", "
\n

a

\n
\n", "should support the given line ending, even if line endings exist" ); Ok(()) }