use faker_rand::{en_us::internet, lorem::Paragraphs}; use uuid::Uuid; use crate::{ app::App, clock::RequestedAt, name::Name, user::{self, Password, User}, }; pub async fn create_with_password(app: &App, created_at: &RequestedAt) -> (Name, Password) { let (name, password) = propose(); let user = app .users() .create(&name, &password, created_at) .await .expect("should always succeed if the login is actually new"); (user.name, password) } pub async fn create(app: &App, created_at: &RequestedAt) -> User { let (name, password) = propose(); app.users() .create(&name, &password, created_at) .await .expect("should always succeed if the login is actually new") } pub fn fictitious() -> User { User { id: user::Id::generate(), name: propose_name(), } } pub fn propose() -> (Name, Password) { (propose_name(), propose_password()) } pub fn propose_invalid_name() -> Name { rand::random::().to_string().into() } fn propose_name() -> Name { rand::random::().to_string().into() } pub fn propose_password() -> Password { Uuid::new_v4().to_string().into() }