Skip to content

Commit 5f6853c

Browse files
committed
chore: event filtering test
1 parent bb46df6 commit 5f6853c

2 files changed

Lines changed: 46 additions & 0 deletions

File tree

tests/filters.rs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
use jotdown::{Container, Event, Render, RenderExt as _};
2+
use std::borrow::Cow;
3+
4+
struct RickrollRenderer<R>(R);
5+
6+
impl<'s, R> Render<'s> for RickrollRenderer<R>
7+
where
8+
R: Render<'s>,
9+
{
10+
type Error = R::Error;
11+
12+
fn begin(&mut self) -> Result<(), Self::Error> {
13+
self.0.begin()
14+
}
15+
16+
fn emit(&mut self, event: Event<'s>) -> Result<(), Self::Error> {
17+
match event {
18+
Event::Start(Container::Link(_link, t), attrs) => self.0.emit(Event::Start(
19+
Container::Link(
20+
Cow::Owned("https://www.youtube.com/watch?v=E4WlUXrJgy4".to_owned()),
21+
t,
22+
),
23+
attrs,
24+
)),
25+
_ => self.0.emit(event),
26+
}
27+
}
28+
29+
fn finish(&mut self) -> Result<(), Self::Error> {
30+
self.0.finish()
31+
}
32+
}
33+
34+
#[test]
35+
fn rickroll_me() {
36+
let src = "[interesting link](https://example.com)";
37+
let mut r = RickrollRenderer(jotdown::html::Renderer::minified());
38+
39+
r.render_document(src).unwrap();
40+
41+
assert_eq!(
42+
r.0.into_inner(),
43+
"<p><a href=\"https://www.youtube.com/watch?v=E4WlUXrJgy4\">interesting link</a></p>"
44+
);
45+
}

tests/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
mod attr;
22
mod html;
3+
mod filters;
34
mod parse_events;

0 commit comments

Comments
 (0)