mod common; use common::client::ClientTest; use nextsync::store::{structs::to_obj_path, 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 == to_obj_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