summaryrefslogtreecommitdiffstats
path: root/atuin-client/src
diff options
context:
space:
mode:
authorEllie Huxtable <ellie@elliehuxtable.com>2024-02-06 17:47:00 +0000
committerGitHub <noreply@github.com>2024-02-06 17:47:00 +0000
commit199365310248eecedf8fbad579fc0cdc2e47bbe7 (patch)
tree0380b351a55291df39dcb8c7af324e4bc5786365 /atuin-client/src
parent318bdd895590c97dd53f8d3661d76fa1c0cd67a0 (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.rs4
-rw-r--r--atuin-client/src/settings.rs16
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();