use axum::extract::FromRef; use faker_rand::{ en_us::{addresses::CityName, names::FullName}, faker_impl_from_templates, lorem::Paragraphs, }; use rand; use crate::{ clock::RequestedAt, conversation::{self, Conversation, app::Conversations}, name::Name, }; pub async fn create(app: &App, created_at: &RequestedAt) -> Conversation where Conversations: FromRef, { let name = propose(); Conversations::from_ref(app) .create(&name, created_at) .await .expect("should always succeed if the conversation is actually new") } pub fn propose() -> Name { rand::random::().to_string().into() } pub fn propose_invalid_name() -> Name { rand::random::().to_string().into() } struct NameTemplate(String); faker_impl_from_templates! { NameTemplate; "{} {}", CityName, FullName; } pub fn fictitious() -> conversation::Id { conversation::Id::generate() }