Skip to content

Commit 4edce2d

Browse files
committed
failing tests
1 parent f7d47da commit 4edce2d

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

src/parser.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ impl Parser {
130130
state = self.parse_line(state, line, line_num, &mut cards)?;
131131
}
132132
self.finalize(state, last_line, &mut cards)?;
133+
133134
Ok(cards)
134135
}
135136

@@ -359,6 +360,10 @@ impl Parser {
359360

360361
#[cfg(test)]
361362
mod tests {
363+
use std::env::temp_dir;
364+
365+
use serial_test::serial;
366+
362367
use super::*;
363368

364369
#[test]
@@ -590,6 +595,37 @@ mod tests {
590595
Ok(())
591596
}
592597

598+
#[test]
599+
fn test_identical_basic_cards() -> Fallible<()> {
600+
let input = "Q: foo\nA: bar\n\nQ: foo\nA: bar\n\n";
601+
let parser = make_test_parser();
602+
let cards = parser.parse(input)?;
603+
assert_eq!(cards.len(), 1);
604+
Ok(())
605+
}
606+
607+
#[test]
608+
fn test_identical_cloze_cards() -> Fallible<()> {
609+
let input = "C: foo [bar]\n\nC: foo [bar]";
610+
let parser = make_test_parser();
611+
let cards = parser.parse(input)?;
612+
assert_eq!(cards.len(), 1);
613+
Ok(())
614+
}
615+
616+
#[test]
617+
#[serial]
618+
fn test_identical_cards_across_files() -> Fallible<()> {
619+
let directory = temp_dir();
620+
let file1 = directory.join("file1.md");
621+
let file2 = directory.join("file2.md");
622+
std::fs::write(&file1, "Q: foo\nA: bar")?;
623+
std::fs::write(&file2, "Q: foo\nA: bar")?;
624+
let deck = parse_deck(&directory)?;
625+
assert_eq!(deck.len(), 1);
626+
Ok(())
627+
}
628+
593629
fn make_test_parser() -> Parser {
594630
Parser::new("test_deck".to_string(), PathBuf::from("test.md"))
595631
}

0 commit comments

Comments
 (0)