Added file errors to update entry.
This commit is contained in:
parent
96ed474568
commit
1403aaa935
@ -99,9 +99,14 @@ impl MoreThanText {
|
||||
Ok(_) => (),
|
||||
Err(err) => return Err(err),
|
||||
}
|
||||
write(Path::new(&self.dir).join(&id), entry.to_bytes())
|
||||
.await
|
||||
.unwrap();
|
||||
match write(Path::new(&self.dir).join(&id), entry.to_bytes()).await {
|
||||
Ok(_) => (),
|
||||
Err(err) => {
|
||||
let mut error = DBError::new("data write");
|
||||
error.add_source(err);
|
||||
return Err(error);
|
||||
}
|
||||
}
|
||||
let mut cache = self.cache.lock().await;
|
||||
cache.insert(id.to_string(), entry);
|
||||
Ok(())
|
||||
@ -262,6 +267,31 @@ mod cache {
|
||||
Err(err) => assert_eq!(err.to_string(), "cache entry not found"),
|
||||
}
|
||||
}
|
||||
|
||||
#[async_std::test]
|
||||
async fn update_bad_file() {
|
||||
let mtt = MTT::new().await;
|
||||
let msg = "could not write to file";
|
||||
let id = mtt
|
||||
.db
|
||||
.add_entry(CacheEntry::Raw("fleeting".to_string()))
|
||||
.await
|
||||
.unwrap();
|
||||
mtt.create_io_error().await;
|
||||
match mtt
|
||||
.db
|
||||
.update_entry(&id, CacheEntry::Raw("failure".to_string()))
|
||||
.await
|
||||
{
|
||||
Ok(_) => assert!(false, "This should produce a write failure."),
|
||||
Err(err) => {
|
||||
assert_eq!(err.to_string(), "data write");
|
||||
assert!(err.source().is_some(), "Must include the source error.");
|
||||
let err_msg = err.source().unwrap().to_string();
|
||||
assert!(err_msg.contains(msg), "'{}' not in '{}'", msg, err_msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
Loading…
Reference in New Issue
Block a user