use std::path::PathBuf; use fomod_manager::types::RootConfig; fn get_parent() -> PathBuf { PathBuf::from(file!()).parent().unwrap().to_owned() } #[test] fn parse_minimal() { let config = RootConfig::load_from_file(get_parent().join("data/root_config_minimal.toml")).unwrap(); assert!(config.mod_location().ends_with("mods")); assert!( config.download_location().is_none(), "Download location should be None" ); assert!(config.nexus_api_key().is_none()); } #[test] fn parse_complex() { let config = RootConfig::load_from_file(get_parent().join("data/root_config_complex.toml")).unwrap(); assert!(config.mod_location().ends_with("mods")); assert!( config .download_location() .is_some_and(|e| e.ends_with("downloads")) ); assert_eq!(config.nexus_api_key(), Some("1234")); assert!( config .game_by_id("sse") .is_some_and(|e| e.install_location() == "/home/user/games/sse"), "Installed game wrong path" ); assert!(config.game_by_id("starfield").is_none()); assert!(config.mod_by_id("mod1").is_some()); assert!(config.mod_by_id("mod100").is_none()); assert!( config .mod_by_id("mod1") .is_some_and(|e| e.path().ends_with("mods/mod1")) ); }