nextsync/tests/add_test.rs
2024-09-08 17:59:39 +02:00

50 lines
1.2 KiB
Rust

mod common;
use common::client::ClientTest;
use nextsync::store::indexer::Indexer;
use nextsync::commands::status::{get_obj_changes, StatusArgs};
use nextsync::config::config::Config;
use std::io;
use std::path::PathBuf;
const DEFAULT_STATUS_ARG: StatusArgs = StatusArgs { nostyle: false };
fn indexed_expected(indexer: &Indexer, expected: Vec<&str>) {
let objs = indexer.get_indexed_objs();
assert_eq!(objs.len(), expected.len());
for obj in expected {
assert!(objs
.iter()
.position(|e| { e.path == PathBuf::from(obj) })
.is_some());
}
}
#[test]
fn add_ignored_file() -> io::Result<()> {
let mut client = ClientTest::new("add__simple_file").init();
client.add_ignore_rule("foo");
client.add_file("foo", "foo")?;
let mut indexer = Indexer::new(client.get_config().get_root_unsafe());
client.exec_ok("add foo");
let _ = indexer.load();
indexed_expected(&indexer, vec![]);
client.exec_ok("add foo -f");
let _ = indexer.load();
indexed_expected(&indexer, vec!["foo"]);
client.ok()
}
// add double globbing
// add all
// add folders
// add part of folders
// add all folder
// add automatic ignored if is tracked