diary/
ops.rs

1pub mod init;
2pub use self::init::{init, InitOptions};
3pub mod add;
4pub mod commit;
5pub mod new;
6pub mod open;
7
8#[cfg(test)]
9pub mod testing {
10    use std::path::{Path, PathBuf};
11
12    use chrono::prelude::*;
13    use tempfile::tempdir;
14
15    use super::{init, InitOptions};
16    use crate::{
17        config::Config,
18        ops::new::{new, NewOptions},
19        utils::editing::test::test_string_getter,
20        Diary,
21    };
22
23    pub fn temp_path() -> PathBuf {
24        tempdir().unwrap().path().to_path_buf()
25    }
26
27    pub fn temp_diary_path() -> PathBuf {
28        let dir = temp_path();
29        dir.join("diary")
30    }
31
32    pub fn temp_config() -> Config {
33        let diary_dir = temp_diary_path();
34        Config::builder().diary_path(diary_dir).build()
35    }
36
37    pub fn new_entry(config: &Config, entry_date: &DateTime<Local>) {
38        let new_opts = NewOptions { open: false };
39        let diary = Diary::from_config(config).unwrap();
40        new(&new_opts, &diary, entry_date, test_string_getter).unwrap();
41    }
42
43    pub fn default_init(potential_path: &Path) {
44        let init_opts = InitOptions {
45            path: temp_path(),
46            prefix: None,
47            git_repo: false,
48        };
49        init(&init_opts, potential_path).unwrap();
50    }
51}