summaryrefslogtreecommitdiff
path: root/src/test/fixtures/conversation.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/fixtures/conversation.rs')
-rw-r--r--src/test/fixtures/conversation.rs38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/test/fixtures/conversation.rs b/src/test/fixtures/conversation.rs
new file mode 100644
index 0000000..fb2f58d
--- /dev/null
+++ b/src/test/fixtures/conversation.rs
@@ -0,0 +1,38 @@
+use faker_rand::{
+ en_us::{addresses::CityName, names::FullName},
+ faker_impl_from_templates,
+ lorem::Paragraphs,
+};
+use rand;
+
+use crate::{
+ app::App,
+ clock::RequestedAt,
+ conversation::{self, Conversation},
+ name::Name,
+};
+
+pub async fn create(app: &App, created_at: &RequestedAt) -> Conversation {
+ let name = propose();
+ app.conversations()
+ .create(&name, created_at)
+ .await
+ .expect("should always succeed if the conversation is actually new")
+}
+
+pub fn propose() -> Name {
+ rand::random::<NameTemplate>().to_string().into()
+}
+
+pub fn propose_invalid_name() -> Name {
+ rand::random::<Paragraphs>().to_string().into()
+}
+
+struct NameTemplate(String);
+faker_impl_from_templates! {
+ NameTemplate; "{} {}", CityName, FullName;
+}
+
+pub fn fictitious() -> conversation::Id {
+ conversation::Id::generate()
+}