commit 0c2674a0be83d35b7e171e79873db4e37359dc03
parent 41c964d7c34ac01c19f10792791ac623d61fdff7
Author: triesap <tyson@radroots.org>
Date: Wed, 8 Apr 2026 01:22:48 +0000
config: cover repo local path defaults
- add a repo-local path contract test for the canonical radrootsd runtime roots
- assert config logs identity and bridge state paths under the explicit repo-local base
- keep the daemon profile matrix aligned with the interactive_user and service_host coverage
- give the outer runtime-path verification lane a direct radrootsd repo_local proof point
Diffstat:
1 file changed, 28 insertions(+), 0 deletions(-)
diff --git a/src/app/config.rs b/src/app/config.rs
@@ -656,6 +656,34 @@ mod tests {
}
#[test]
+ fn runtime_paths_follow_repo_local_contract() {
+ let repo_local_root = PathBuf::from("/repo/.local/radroots/dev/radrootsd");
+ let paths = resolve_runtime_paths_with_resolver(
+ &linux_resolver("/home/treesap"),
+ RadrootsPathProfile::RepoLocal,
+ Some(repo_local_root.as_path()),
+ )
+ .expect("resolve repo-local paths");
+
+ assert_eq!(
+ paths.config_path,
+ repo_local_root.join("config/services/radrootsd/config.toml")
+ );
+ assert_eq!(
+ paths.logs_dir,
+ repo_local_root.join("logs/services/radrootsd")
+ );
+ assert_eq!(
+ paths.identity_path,
+ repo_local_root.join("secrets/services/radrootsd/identity.secret.json")
+ );
+ assert_eq!(
+ paths.bridge_state_path,
+ repo_local_root.join("data/services/radrootsd/bridge/bridge-jobs.json")
+ );
+ }
+
+ #[test]
fn load_settings_materializes_profile_defaults_when_paths_are_omitted() {
let temp = tempfile::tempdir().expect("tempdir");
let config_path = temp.path().join("radrootsd.toml");