fix(tests): add Settings::utc() for utc settings (#1677)

Means we don't try and load timezones in tests, as this fails due to
multiple threads.

Also allow specifying '0' or 'utc' as a timezone
This commit is contained in:
Ellie Huxtable 2024-02-06 17:47:00 +00:00 committed by GitHub
parent 318bdd8955
commit 1993653102
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 22 additions and 6 deletions

View File

@ -362,7 +362,7 @@ mod tests {
let settings = Settings {
cwd_filter: RegexSet::new(["^/supasecret"]).unwrap(),
history_filter: RegexSet::new(["^psql"]).unwrap(),
..Settings::default()
..Settings::utc()
};
let normal_command: History = History::capture()
@ -411,7 +411,7 @@ mod tests {
fn disable_secrets() {
let settings = Settings {
secrets_filter: false,
..Settings::default()
..Settings::utc()
};
let stripe_key: History = History::capture()

View File

@ -155,6 +155,11 @@ impl FromStr for Timezone {
return Ok(Self(offset));
}
if matches!(s.to_lowercase().as_str(), "0" | "utc") {
let offset = UtcOffset::UTC;
return Ok(Self(offset));
}
// offset from UTC
if let Ok(offset) = UtcOffset::parse(s, OFFSET_FMT) {
return Ok(Self(offset));
@ -355,6 +360,17 @@ pub struct Settings {
}
impl Settings {
pub fn utc() -> Self {
Self::builder()
.expect("Could not build default")
.set_override("timezone", "0")
.expect("failed to override timezone with UTC")
.build()
.expect("Could not build config")
.try_deserialize()
.expect("Could not deserialize config")
}
fn save_to_data_dir(filename: &str, value: &str) -> Result<()> {
let data_dir = atuin_common::utils::data_dir();
let data_dir = data_dir.as_path();

View File

@ -182,7 +182,7 @@ mod tests {
#[test]
fn interesting_commands() {
let settings = Settings::default();
let settings = Settings::utc();
assert_eq!(interesting_command(&settings, "cargo"), "cargo");
assert_eq!(
@ -199,7 +199,7 @@ mod tests {
// Test with spaces in the common_prefix
#[test]
fn interesting_commands_spaces() {
let mut settings = Settings::default();
let mut settings = Settings::utc();
settings.stats.common_prefix.push("sudo test".to_string());
assert_eq!(interesting_command(&settings, "sudo test"), "sudo test");
@ -224,7 +224,7 @@ mod tests {
// Test with spaces in the common_subcommand
#[test]
fn interesting_commands_spaces_subcommand() {
let mut settings = Settings::default();
let mut settings = Settings::utc();
settings
.stats
.common_subcommands
@ -254,7 +254,7 @@ mod tests {
// Test with spaces in the common_prefix and common_subcommand
#[test]
fn interesting_commands_spaces_both() {
let mut settings = Settings::default();
let mut settings = Settings::utc();
settings.stats.common_prefix.push("sudo test".to_string());
settings
.stats