Merge branch 'dev-autocomplete' into 'main'

Autocomplete tests

See merge request categulario/tiempo-rs!8
This commit is contained in:
perro tuerto 2023-03-14 21:06:42 +00:00
commit cc753aa3ef
2 changed files with 48 additions and 0 deletions

View File

@ -200,6 +200,10 @@ Is there a permissions issue? Here's the underlaying error:
letters, numbers, dots, dashes and underscores are allowed.")]
InvalidCustomFormatter(String),
#[error("The specified name for a autocompleted formatter \"{0}\" is not valid. Only ascii
letters, numbers, dots, dashes and underscores are allowed.")]
InvalidAutocompleteFormatter(String),
#[error("You have specified a custom formatter \"{0}\" but your config file doesn't say
where to look for it.

View File

@ -69,3 +69,47 @@ impl FromStr for Formatter {
})
}
}
#[cfg(test)]
mod tests {
use super::*;
fn autocomplete(s: &str) -> error::Result<Formatter> {
let formatters = vec!["text", "csv", "json", "ids", "ical", "chart"];
if s.len() > 1 {
for formatter in formatters {
if formatter.contains(s) {
return Formatter::from_str(formatter)
}
}
}
Err(error::Error::InvalidAutocompleteFormatter(s.to_string()))
}
#[test]
fn valid_autocomplete_starts_with() {
let format = autocomplete("tex");
assert!(format.is_ok());
}
#[test]
fn valid_autocomplete_contains() {
let format = autocomplete("sv");
assert!(format.is_ok());
}
#[test]
fn invalid_autocomplete_to_short() {
let format = autocomplete("s");
assert!(format.is_err());
}
#[test]
fn invalid_autocomplete_does_not_contains() {
let format = autocomplete("fail");
assert!(format.is_err());
}
// TODO: autocomplete for custom formatter
}