core/src/config/auth_keyring_tests.rs
79 lines
use super::*;use codex_config::ConfigLayerStack;use codex_config::ConfigRequirements;use codex_config::ConfigRequirementsToml;use codex_config::FeatureRequirementsToml;use codex_config::RequirementSource;use codex_config::Sourced;use codex_config::config_toml::ConfigToml;use codex_features::FeaturesToml;use pretty_assertions::assert_eq;use std::collections::BTreeMap;#[test]fn resolve_bootstrap_auth_keyring_backend_kind_uses_secret_auth_storage_feature()-> std::io::Result<()> { let config_toml = ConfigToml { features: Some(FeaturesToml::from(BTreeMap::from([( "secret_auth_storage".to_string(), true, )]))), ..Default::default() }; assert_eq!( resolve_bootstrap_auth_keyring_backend_kind(&config_toml_load_result( config_toml, /*feature_requirements*/ None, )?)?, AuthKeyringBackendKind::Secrets ); let config_toml = ConfigToml { features: Some(FeaturesToml::from(BTreeMap::from([( "secret_auth_storage".to_string(), false, )]))), ..Default::default() }; assert_eq!( resolve_bootstrap_auth_keyring_backend_kind(&config_toml_load_result( config_toml.clone(), /*feature_requirements*/ None, )?)?, AuthKeyringBackendKind::Direct ); let requirements = Sourced::new( FeatureRequirementsToml { entries: BTreeMap::from([("secret_auth_storage".to_string(), true)]), }, RequirementSource::Unknown, ); assert_eq!( resolve_bootstrap_auth_keyring_backend_kind(&config_toml_load_result( config_toml, Some(requirements), )?)?, AuthKeyringBackendKind::Secrets ); Ok(())}fn config_toml_load_result( config_toml: ConfigToml, feature_requirements: Option<Sourced<FeatureRequirementsToml>>,) -> std::io::Result<ConfigTomlLoadResult> { let requirements = ConfigRequirements { feature_requirements, ..Default::default() }; Ok(ConfigTomlLoadResult { config_toml, config_layer_stack: ConfigLayerStack::new( Vec::new(), requirements, ConfigRequirementsToml::default(), )?, })}