diff --git a/src/server/mod.rs b/src/server/mod.rs index 9504e40..fa4a9e6 100644 --- a/src/server/mod.rs +++ b/src/server/mod.rs @@ -87,7 +87,7 @@ pub enum Error { #[error("can not remove entry from db: {0}")] RemoveDbEntry(db::Error), - #[error("can not add to storeo: {0}")] + #[error("can not add to store: {0}")] AddStore(crate::store::Error), #[error("db error: {0}")] diff --git a/src/store/mod.rs b/src/store/mod.rs index 4b3ecb6..d6195c5 100644 --- a/src/store/mod.rs +++ b/src/store/mod.rs @@ -13,11 +13,11 @@ use thiserror::Error; #[derive(Error, Debug)] pub enum Error { - #[error("can not create log folder: {0}")] - CreateLogFolder(PathBuf, std::io::Error), + #[error("can not create index folder at path {0:?}: {1}")] + CreateIndexFolder(PathBuf, std::io::Error), - #[error("can not open log file: {0}")] - OpenLogFile(PathBuf, std::io::Error), + #[error("can not open index file at path {0:?}: {1}")] + OpenIndexFile(PathBuf, std::io::Error), #[error("can not serialize entry: {0}")] SerializeEntry(csv::Error), @@ -28,8 +28,8 @@ pub enum Error { #[error("problem while iterating glob: {0}")] GlobIteration(glob::GlobError), - #[error("can not read log file {0:?}: {1}")] - ReadLogFile(PathBuf, csv::Error), + #[error("can not read index file {0:?}: {1}")] + ReadIndexFile(PathBuf, csv::Error), #[error("{0}")] Filter(#[from] filter::Error), @@ -55,7 +55,7 @@ impl Store { let file_path = folder_path.join(format!("{}.csv", hostname)); fs::create_dir_all(&folder_path) - .map_err(|err| Error::CreateLogFolder(folder_path.to_path_buf(), err))?; + .map_err(|err| Error::CreateIndexFolder(folder_path.to_path_buf(), err))?; let mut builder = csv::WriterBuilder::new(); @@ -68,7 +68,7 @@ impl Store { .append(true) .create(true) .open(&file_path) - .map_err(|err| Error::OpenLogFile(file_path.clone(), err))?; + .map_err(|err| Error::OpenIndexFile(file_path.clone(), err))?; let mut writer = builder.from_writer(index_file); @@ -119,12 +119,12 @@ impl Store { fn read_log_file>(file_path: P) -> Result, Error> { let file = std::fs::File::open(&file_path) - .map_err(|err| Error::OpenLogFile(file_path.as_ref().to_path_buf(), err))?; + .map_err(|err| Error::OpenIndexFile(file_path.as_ref().to_path_buf(), err))?; let reader = std::io::BufReader::new(file); Self::read_metadata(reader) - .map_err(|err| Error::ReadLogFile(file_path.as_ref().to_path_buf(), err)) + .map_err(|err| Error::ReadIndexFile(file_path.as_ref().to_path_buf(), err)) } fn read_metadata(reader: R) -> Result, csv::Error> { diff --git a/tests/client_server_intigration.rs b/tests/client_server_intigration.rs index 5a6cd2e..2af35bd 100644 --- a/tests/client_server_intigration.rs +++ b/tests/client_server_intigration.rs @@ -374,3 +374,21 @@ fn write_newline_command() { assert_eq!(entries.len(), 0); } + +#[test] +fn existing_empty_file() { + let hostname = "testhostname".to_string(); + let data_dir = tempfile::tempdir().unwrap().into_path(); + std::fs::File::create(data_dir.join(format!("{}.csv", hostname))).unwrap(); + + dbg!(&data_dir); + + let store = store::new(data_dir.clone()); + let entries = store.get_entries(&Filter::default()).unwrap(); + + dbg!(&entries); + + assert_eq!(entries.len(), 0); + + std::fs::remove_dir_all(&data_dir).unwrap(); +}