add a (currently failing) test for duplicate parent names

This commit is contained in:
Damien Elmes 2021-01-16 17:18:09 +10:00
parent e018ea94b6
commit 6f7c68b661

View File

@ -458,4 +458,53 @@ mod test {
Ok(())
}
fn node(name: &str, level: u32, children: Vec<TagTreeNode>) -> TagTreeNode {
TagTreeNode {
name: name.into(),
level,
children,
..Default::default()
}
}
fn leaf(name: &str, level: u32) -> TagTreeNode {
node(name, level, vec![])
}
#[test]
fn tree() -> Result<()> {
let mut col = open_test_collection();
let nt = col.get_notetype_by_name("Basic")?.unwrap();
let mut note = nt.new_note();
note.tags.push("foo::a".into());
note.tags.push("foo::b".into());
col.add_note(&mut note, DeckID(1))?;
// missing parents are added
assert_eq!(
col.tag_tree()?,
node(
"",
0,
vec![node("foo", 1, vec![leaf("a", 2), leaf("b", 2)])]
)
);
// differing case should result in only one parent case being added -
// the first one
*(&mut note.tags[1]) = "FOO::b".into();
col.storage.clear_tags()?;
col.update_note(&mut note)?;
assert_eq!(
col.tag_tree()?,
node(
"",
0,
vec![node("foo", 1, vec![leaf("a", 2), leaf("b", 2)])]
)
);
Ok(())
}
}