From 923343a076442864a3d2615aec298f36431e079a Mon Sep 17 00:00:00 2001 From: PoiScript Date: Wed, 6 May 2020 11:01:44 +0800 Subject: [PATCH] fix(validate): allow empty ListItem (#11) --- src/validate.rs | 8 +++++--- tests/issue_11.rs | 21 +++++++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 tests/issue_11.rs diff --git a/src/validate.rs b/src/validate.rs index 1b47bef..535b268 100644 --- a/src/validate.rs +++ b/src/validate.rs @@ -188,11 +188,13 @@ impl Org<'_> { | Element::Italic | Element::Underline | Element::Strike - | Element::DynBlock(_) - | Element::ListItem(_) => { + | Element::DynBlock(_) => { expect_children!(node_id); } - Element::Drawer(_) | Element::TableCell(_) | Element::Table(_) => (), + Element::ListItem(_) + | Element::Drawer(_) + | Element::TableCell(_) + | Element::Table(_) => (), } } errors diff --git a/tests/issue_11.rs b/tests/issue_11.rs new file mode 100644 index 0000000..d22e72b --- /dev/null +++ b/tests/issue_11.rs @@ -0,0 +1,21 @@ +use orgize::Org; + +#[test] +fn can_handle_empty_list_item() { + let cases = &[ + "0. ", + "* \n0. ", + " * ", + " 0. ", + "\t* ", + "- ", + "- hello\n- ", + "- \n- hello", + "- hello\n- \n- world", + "* world\n- ", + ]; + + for case in cases { + let _ = Org::parse(case); + } +}