mirror of
https://github.com/ankitects/anki.git
synced 2025-09-23 16:26:40 -04:00
Test new behaviour of v3 counts
This commit is contained in:
parent
bb4cbfe26e
commit
94359a5d2f
1 changed files with 44 additions and 0 deletions
|
@ -472,4 +472,48 @@ mod test {
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn nested_counts_v3() -> Result<()> {
|
||||||
|
fn create_deck_with_new_limit(col: &mut Collection, name: &str, new_limit: u32) -> Deck {
|
||||||
|
let mut deck = col.get_or_create_normal_deck(name).unwrap();
|
||||||
|
let mut conf = DeckConfig::default();
|
||||||
|
conf.inner.new_per_day = new_limit;
|
||||||
|
col.add_or_update_deck_config(&mut conf).unwrap();
|
||||||
|
deck.normal_mut().unwrap().config_id = conf.id.0;
|
||||||
|
col.add_or_update_deck(&mut deck).unwrap();
|
||||||
|
deck
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut col = open_test_collection();
|
||||||
|
col.set_config_bool(BoolKey::Sched2021, true, false)?;
|
||||||
|
|
||||||
|
let parent_deck = create_deck_with_new_limit(&mut col, "Default", 8);
|
||||||
|
let child_deck = create_deck_with_new_limit(&mut col, "Default::child", 4);
|
||||||
|
let grandchild_1 = create_deck_with_new_limit(&mut col, "Default::child::grandchild_1", 2);
|
||||||
|
let grandchild_2 = create_deck_with_new_limit(&mut col, "Default::child::grandchild_2", 1);
|
||||||
|
|
||||||
|
// add 2 new cards to each deck
|
||||||
|
let nt = col.get_notetype_by_name("Cloze")?.unwrap();
|
||||||
|
let mut note = nt.new_note();
|
||||||
|
note.set_field(0, "{{c1::}} {{c2::}}")?;
|
||||||
|
col.add_note(&mut note, parent_deck.id)?;
|
||||||
|
note.id.0 = 0;
|
||||||
|
col.add_note(&mut note, child_deck.id)?;
|
||||||
|
note.id.0 = 0;
|
||||||
|
col.add_note(&mut note, grandchild_1.id)?;
|
||||||
|
note.id.0 = 0;
|
||||||
|
col.add_note(&mut note, grandchild_2.id)?;
|
||||||
|
|
||||||
|
let parent = &col.deck_tree(Some(TimestampSecs::now()), None)?.children[0];
|
||||||
|
// grandchildren: own cards, limited by own new limits
|
||||||
|
assert_eq!(parent.children[0].children[0].new_count, 2);
|
||||||
|
assert_eq!(parent.children[0].children[1].new_count, 1);
|
||||||
|
// child: cards from self and children, limited by own new limit
|
||||||
|
assert_eq!(parent.children[0].new_count, 4);
|
||||||
|
// parent: cards from self and all subdecks, all limits in the hierarchy are respected
|
||||||
|
assert_eq!(parent.new_count, 6);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue