argv-todo 0.1.0

A Vim-style terminal todo manager with nested tasks, priorities, search, and local SQLite storage
use super::*;
#[test]
fn default_uses_platform_config_directory() {
    assert_eq!(
        parse([]).unwrap().unwrap(),
        Options {
            database_path: dirs::config_dir().unwrap().join("argv-todo").join("db.sql"),
            database_override: false,
        }
    );
}
#[test]
fn accepts_override_and_rejects_missing_or_unknown_arguments() {
    for path in [
        "/tmp/custom.sql",
        "/Users/example/Library/Application Support/argv-todo/tasks.sql",
        r"C:\Users\example\AppData\Roaming\argv-todo\tasks.sql",
        r"\\server\share\todo storage\tasks.sql",
    ] {
        assert_eq!(
            parse(["--db".into(), path.into()]).unwrap(),
            Some(Options {
                database_path: PathBuf::from(path),
                database_override: true,
            })
        );
    }
    assert!(parse(["--db".into()]).is_err());
    assert!(parse(["--unknown".into()]).is_err());
    assert!(parse(["--db".into(), "".into()]).is_err());
    assert_eq!(parse(["--help".into()]).unwrap(), None);
    assert_eq!(parse(["--version".into()]).unwrap(), None);
}