48 lines
887 B
Rust
48 lines
887 B
Rust
use std::fs;
|
|
|
|
use tasks::error::TaskError;
|
|
use tasks::store::Store;
|
|
use tasks::task::Status;
|
|
|
|
use crate::common::{temp_path, three_tasks};
|
|
|
|
mod common;
|
|
|
|
#[test]
|
|
fn completing_task_that_are_done_is_not_an_error() -> Result<(), TaskError> {
|
|
let mut m = three_tasks();
|
|
|
|
m.complete(1)?;
|
|
|
|
let t = m.find(1).unwrap();
|
|
assert_eq!(t.status, Status::Done);
|
|
|
|
Ok(())
|
|
}
|
|
|
|
#[test]
|
|
fn reload_saved_working() -> Result<(), TaskError> {
|
|
let mut m = three_tasks();
|
|
let p = temp_path();
|
|
m.remove_completed();
|
|
m.save(&p)?;
|
|
|
|
let m2 = Store::load(&p)?;
|
|
assert_eq!(m2, m);
|
|
Ok(())
|
|
}
|
|
|
|
#[test]
|
|
fn smaller_store_smaller_saved_files() -> Result<(), TaskError> {
|
|
let mut m = three_tasks();
|
|
let p = temp_path();
|
|
m.save(&p)?;
|
|
|
|
m.remove_completed();
|
|
m.save(&p)?;
|
|
|
|
let s = fs::read_to_string(p)?;
|
|
assert_eq!(s.lines().count(), 2);
|
|
Ok(())
|
|
}
|