use uuid::Uuid;
pub fn generate_id() -> String {
Uuid::now_v7().to_string()
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_generate_id_is_valid_uuid() {
let id = generate_id();
assert!(Uuid::parse_str(&id).is_ok());
}
#[test]
fn test_generate_id_is_unique() {
let id1 = generate_id();
let id2 = generate_id();
assert_ne!(id1, id2);
}
#[test]
fn test_generate_id_format() {
let id = generate_id();
assert_eq!(id.len(), 36);
assert_eq!(id.chars().nth(8), Some('-'));
assert_eq!(id.chars().nth(13), Some('-'));
assert_eq!(id.chars().nth(14), Some('7')); assert_eq!(id.chars().nth(18), Some('-'));
assert_eq!(id.chars().nth(23), Some('-'));
}
}