use super::Contact;
use reinhardt_core::macros::settings;
use serde::{Deserialize, Serialize};
#[settings(fragment = true, section = "contacts")]
#[derive(Clone, Debug, Default, Serialize, Deserialize)]
pub struct ContactSettings {
#[serde(default)]
pub admins: Vec<Contact>,
#[serde(default)]
pub managers: Vec<Contact>,
}
#[cfg(test)]
mod tests {
use super::*;
use crate::settings::Contact;
use crate::settings::fragment::SettingsFragment;
use rstest::rstest;
#[rstest]
fn test_contact_settings_section() {
assert_eq!(ContactSettings::section(), "contacts");
}
#[rstest]
fn test_contact_settings_default() {
let settings = ContactSettings::default();
assert!(settings.admins.is_empty());
assert!(settings.managers.is_empty());
}
#[rstest]
fn test_contact_settings_with_contacts() {
let settings = ContactSettings {
admins: vec![Contact::new("Admin", "admin@example.com")],
managers: vec![],
};
assert_eq!(settings.admins.len(), 1);
assert_eq!(settings.admins[0].name, "Admin");
}
}