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}