aboutsummaryrefslogtreecommitdiff
path: root/base
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-04-17 02:08:37 +0200
committermetamuffin <metamuffin@disroot.org>2024-04-17 02:08:37 +0200
commit72da791e3cd46cfb03be377d4835af17d0191fd6 (patch)
tree94827eb69513dafc3c5be80784a9dee9c4b254c5 /base
parent39c11ddc30fcf8fbfc766e0065cdde84d5264ac6 (diff)
downloadjellything-72da791e3cd46cfb03be377d4835af17d0191fd6.tar
jellything-72da791e3cd46cfb03be377d4835af17d0191fd6.tar.bz2
jellything-72da791e3cd46cfb03be377d4835af17d0191fd6.tar.zst
make cargo test work right away
Diffstat (limited to 'base')
-rw-r--r--base/src/lib.rs31
1 files changed, 24 insertions, 7 deletions
diff --git a/base/src/lib.rs b/base/src/lib.rs
index b90934e..385ad7a 100644
--- a/base/src/lib.rs
+++ b/base/src/lib.rs
@@ -11,11 +11,25 @@ pub mod federation;
pub mod permission;
use jellycommon::config::{GlobalConfig, SecretsConfig};
-use std::{fs::File, sync::LazyLock};
+use std::sync::{
+ atomic::{AtomicBool, Ordering},
+ LazyLock,
+};
-pub static CONF: LazyLock<GlobalConfig> = LazyLock::new(|| {
+pub static CONF: LazyLock<GlobalConfig> = LazyLock::new(load_config);
+pub static SECRETS: LazyLock<SecretsConfig> = LazyLock::new(load_secrets);
+pub static USE_TEST: AtomicBool = AtomicBool::new(false);
+
+pub fn use_test_config() {
+ USE_TEST.store(true, Ordering::Relaxed)
+}
+
+pub fn load_config() -> GlobalConfig {
+ if USE_TEST.load(Ordering::Relaxed) {
+ return GlobalConfig::default();
+ }
serde_yaml::from_reader(
- File::open(std::env::var("JELLYTHING_CONFIG").unwrap_or_else(|_| {
+ std::fs::File::open(std::env::var("JELLYTHING_CONFIG").unwrap_or_else(|_| {
if std::env::args()
.nth(0)
.unwrap_or_default()
@@ -31,8 +45,11 @@ pub static CONF: LazyLock<GlobalConfig> = LazyLock::new(|| {
.expect("config cannot be read"),
)
.expect("config invalid")
-});
-pub static SECRETS: LazyLock<SecretsConfig> = LazyLock::new(|| {
- serde_yaml::from_reader(File::open(&CONF.secrets_path).expect("secrets file missing"))
+}
+fn load_secrets() -> SecretsConfig {
+ if USE_TEST.load(Ordering::Relaxed) {
+ return SecretsConfig::default();
+ }
+ serde_yaml::from_reader(std::fs::File::open(&CONF.secrets_path).expect("secrets file missing"))
.expect("secrets config invalid")
-});
+}