summaryrefslogtreecommitdiff
path: root/src/test/fixtures/user.rs
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2025-04-03 23:45:23 -0400
committerOwen Jacobson <owen@grimoire.ca>2025-04-03 23:45:23 -0400
commit9f7f82dbd9adee8ae18ae7ff2600b3e1dc8fadbc (patch)
treed973d00486ffab3445e3ca454e93a941ed8fe6e2 /src/test/fixtures/user.rs
parent24755a89a97a4d1cb10ebbcf41e200861f3bedf3 (diff)
parent45eea07a56022f647b3a273798a5255cda73f13d (diff)
Merge branch 'prop/rename-login-to-user'
Diffstat (limited to 'src/test/fixtures/user.rs')
-rw-r--r--src/test/fixtures/user.rs51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/test/fixtures/user.rs b/src/test/fixtures/user.rs
new file mode 100644
index 0000000..6448f64
--- /dev/null
+++ b/src/test/fixtures/user.rs
@@ -0,0 +1,51 @@
+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::<Paragraphs>().to_string().into()
+}
+
+fn propose_name() -> Name {
+ rand::random::<internet::Username>().to_string().into()
+}
+
+pub fn propose_password() -> Password {
+ Uuid::new_v4().to_string().into()
+}