diff options
author | Ellie Huxtable <ellie@elliehuxtable.com> | 2024-02-06 17:47:00 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-06 17:47:00 +0000 |
commit | 199365310248eecedf8fbad579fc0cdc2e47bbe7 (patch) | |
tree | 0380b351a55291df39dcb8c7af324e4bc5786365 /atuin-client/src | |
parent | 318bdd895590c97dd53f8d3661d76fa1c0cd67a0 (diff) |
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
Diffstat (limited to 'atuin-client/src')
-rw-r--r-- | atuin-client/src/history.rs | 4 | ||||
-rw-r--r-- | atuin-client/src/settings.rs | 16 |
2 files changed, 18 insertions, 2 deletions
diff --git a/atuin-client/src/history.rs b/atuin-client/src/history.rs index 0147e25bc..3dfa5c52d 100644 --- a/atuin-client/src/history.rs +++ b/atuin-client/src/history.rs @@ -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() diff --git a/atuin-client/src/settings.rs b/atuin-client/src/settings.rs index 7abacd0de..f4c47c645 100644 --- a/atuin-client/src/settings.rs +++ b/atuin-client/src/settings.rs @@ -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(); |