refactor: update dependencies and remove unused code
- Added new dependencies: `adler2`, `crc32fast`, `flate2`, `miniz_oxide`, and `libredox`. - Updated existing dependencies: `tokio-rustls` to version 0.26.4 and `filetime` to version 0.2.27. - Removed the `backup.rs` file as it is no longer needed. - Introduced tests for configuration and credential management. - Enhanced the `identity` module to generate W3C compliant DID documents. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
fd2a837bea
commit
f07ce10b1a
@@ -208,3 +208,141 @@ impl Default for Config {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_default_config_values() {
|
||||
let config = Config::default();
|
||||
assert_eq!(config.data_dir, PathBuf::from("/var/lib/archipelago"));
|
||||
assert_eq!(config.bind_host, "0.0.0.0");
|
||||
assert_eq!(config.bind_port, 5678);
|
||||
assert_eq!(config.log_level, "info");
|
||||
assert_eq!(config.host_ip, "127.0.0.1");
|
||||
assert!(!config.dev_mode);
|
||||
assert_eq!(config.port_offset, 10000);
|
||||
assert!(config.nostr_discovery_enabled);
|
||||
assert_eq!(config.nostr_relays.len(), 2);
|
||||
assert_eq!(config.nostr_tor_proxy, Some("127.0.0.1:9050".to_string()));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_container_runtime_from_str_podman() {
|
||||
assert!(matches!(ContainerRuntime::from_str("podman"), ContainerRuntime::Podman));
|
||||
assert!(matches!(ContainerRuntime::from_str("Podman"), ContainerRuntime::Podman));
|
||||
assert!(matches!(ContainerRuntime::from_str("PODMAN"), ContainerRuntime::Podman));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_container_runtime_from_str_docker() {
|
||||
assert!(matches!(ContainerRuntime::from_str("docker"), ContainerRuntime::Docker));
|
||||
assert!(matches!(ContainerRuntime::from_str("Docker"), ContainerRuntime::Docker));
|
||||
assert!(matches!(ContainerRuntime::from_str("DOCKER"), ContainerRuntime::Docker));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_container_runtime_from_str_auto() {
|
||||
assert!(matches!(ContainerRuntime::from_str("auto"), ContainerRuntime::Auto));
|
||||
assert!(matches!(ContainerRuntime::from_str("Auto"), ContainerRuntime::Auto));
|
||||
// Unknown strings default to Auto
|
||||
assert!(matches!(ContainerRuntime::from_str("unknown"), ContainerRuntime::Auto));
|
||||
assert!(matches!(ContainerRuntime::from_str(""), ContainerRuntime::Auto));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_bitcoin_simulation_from_str() {
|
||||
assert!(matches!(BitcoinSimulation::from_str("mock"), BitcoinSimulation::Mock));
|
||||
assert!(matches!(BitcoinSimulation::from_str("Mock"), BitcoinSimulation::Mock));
|
||||
assert!(matches!(BitcoinSimulation::from_str("testnet"), BitcoinSimulation::Testnet));
|
||||
assert!(matches!(BitcoinSimulation::from_str("Testnet"), BitcoinSimulation::Testnet));
|
||||
assert!(matches!(BitcoinSimulation::from_str("mainnet"), BitcoinSimulation::Mainnet));
|
||||
assert!(matches!(BitcoinSimulation::from_str("Mainnet"), BitcoinSimulation::Mainnet));
|
||||
assert!(matches!(BitcoinSimulation::from_str("none"), BitcoinSimulation::None));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_bitcoin_simulation_unknown_defaults_to_none() {
|
||||
assert!(matches!(BitcoinSimulation::from_str(""), BitcoinSimulation::None));
|
||||
assert!(matches!(BitcoinSimulation::from_str("signet"), BitcoinSimulation::None));
|
||||
assert!(matches!(BitcoinSimulation::from_str("garbage"), BitcoinSimulation::None));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_config_serialization_roundtrip() {
|
||||
let config = Config::default();
|
||||
let json = serde_json::to_string(&config).unwrap();
|
||||
let deserialized: Config = serde_json::from_str(&json).unwrap();
|
||||
assert_eq!(deserialized.bind_host, config.bind_host);
|
||||
assert_eq!(deserialized.bind_port, config.bind_port);
|
||||
assert_eq!(deserialized.data_dir, config.data_dir);
|
||||
assert_eq!(deserialized.log_level, config.log_level);
|
||||
assert_eq!(deserialized.dev_mode, config.dev_mode);
|
||||
assert_eq!(deserialized.port_offset, config.port_offset);
|
||||
assert_eq!(deserialized.nostr_discovery_enabled, config.nostr_discovery_enabled);
|
||||
assert_eq!(deserialized.nostr_relays, config.nostr_relays);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_config_toml_parsing() {
|
||||
let toml_str = r#"
|
||||
data_dir = "/tmp/test-data"
|
||||
bind_host = "127.0.0.1"
|
||||
bind_port = 9999
|
||||
log_level = "debug"
|
||||
host_ip = "192.168.1.100"
|
||||
dev_mode = true
|
||||
container_runtime = "Podman"
|
||||
port_offset = 20000
|
||||
bitcoin_simulation = "Testnet"
|
||||
dev_data_dir = "/tmp/dev-test"
|
||||
nostr_discovery_enabled = false
|
||||
nostr_relays = ["wss://example.com"]
|
||||
"#;
|
||||
let config: Config = toml::de::from_str(toml_str).unwrap();
|
||||
assert_eq!(config.data_dir, PathBuf::from("/tmp/test-data"));
|
||||
assert_eq!(config.bind_host, "127.0.0.1");
|
||||
assert_eq!(config.bind_port, 9999);
|
||||
assert_eq!(config.log_level, "debug");
|
||||
assert_eq!(config.host_ip, "192.168.1.100");
|
||||
assert!(config.dev_mode);
|
||||
assert_eq!(config.port_offset, 20000);
|
||||
assert!(!config.nostr_discovery_enabled);
|
||||
assert_eq!(config.nostr_relays, vec!["wss://example.com"]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_config_data_dir_is_pathbuf() {
|
||||
let config = Config::default();
|
||||
assert!(config.data_dir.is_absolute());
|
||||
assert_eq!(config.data_dir, PathBuf::from("/var/lib/archipelago"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_config_host_ip_default() {
|
||||
let config = Config::default();
|
||||
assert_eq!(config.host_ip, "127.0.0.1");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_config_dev_mode_defaults_off() {
|
||||
let config = Config::default();
|
||||
assert!(!config.dev_mode);
|
||||
assert_eq!(config.dev_data_dir, PathBuf::from("/tmp/archipelago-dev"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_config_nostr_discovery_enabled_by_default() {
|
||||
let config = Config::default();
|
||||
assert!(config.nostr_discovery_enabled);
|
||||
assert!(config.nostr_tor_proxy.is_some());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_config_nostr_relays_default_not_empty() {
|
||||
let config = Config::default();
|
||||
assert!(!config.nostr_relays.is_empty());
|
||||
assert!(config.nostr_relays.iter().all(|r| r.starts_with("wss://")));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user