mirror of
https://github.com/PR0M3TH3AN/Marlin.git
synced 2025-09-08 07:08:44 +00:00
44 lines
1007 B
Rust
44 lines
1007 B
Rust
mod cli {
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub enum Format {
|
|
Text,
|
|
Json,
|
|
}
|
|
}
|
|
|
|
#[path = "../src/cli/view.rs"]
|
|
mod view;
|
|
|
|
use libmarlin::db;
|
|
|
|
#[test]
|
|
fn view_run_save_and_exec() {
|
|
let mut conn = db::open(":memory:").unwrap();
|
|
conn.execute(
|
|
"INSERT INTO files(path,size,mtime) VALUES ('TODO.txt',0,0)",
|
|
[],
|
|
)
|
|
.unwrap();
|
|
|
|
let save = view::ViewCmd::Save(view::ArgsSave {
|
|
view_name: "tasks".into(),
|
|
query: "TODO".into(),
|
|
});
|
|
view::run(&save, &mut conn, cli::Format::Text).unwrap();
|
|
|
|
let stored: String = conn
|
|
.query_row("SELECT query FROM views WHERE name='tasks'", [], |r| {
|
|
r.get(0)
|
|
})
|
|
.unwrap();
|
|
assert_eq!(stored, "TODO");
|
|
|
|
let list = view::ViewCmd::List;
|
|
view::run(&list, &mut conn, cli::Format::Text).unwrap();
|
|
|
|
let exec = view::ViewCmd::Exec(view::ArgsExec {
|
|
view_name: "tasks".into(),
|
|
});
|
|
view::run(&exec, &mut conn, cli::Format::Text).unwrap();
|
|
}
|