From 2420f1e75d54a5f209b0267715f078a369d81eb1 Mon Sep 17 00:00:00 2001 From: Owen Jacobson Date: Sun, 23 Mar 2025 15:58:33 -0400 Subject: Rename the `login` module to `user`. --- src/test/fixtures/cookie.rs | 2 +- src/test/fixtures/event.rs | 4 ++-- src/test/fixtures/identity.rs | 6 +++--- src/test/fixtures/invite.rs | 4 ++-- src/test/fixtures/login.rs | 14 +++++++------- src/test/fixtures/message.rs | 4 ++-- 6 files changed, 17 insertions(+), 17 deletions(-) (limited to 'src/test/fixtures') diff --git a/src/test/fixtures/cookie.rs b/src/test/fixtures/cookie.rs index fcb379f..bba53b8 100644 --- a/src/test/fixtures/cookie.rs +++ b/src/test/fixtures/cookie.rs @@ -3,9 +3,9 @@ use uuid::Uuid; use crate::{ app::App, clock::RequestedAt, - login::Password, name::Name, token::{Secret, extract::IdentityCookie}, + user::Password, }; pub fn not_logged_in() -> IdentityCookie { diff --git a/src/test/fixtures/event.rs b/src/test/fixtures/event.rs index e11f6ee..c6e5337 100644 --- a/src/test/fixtures/event.rs +++ b/src/test/fixtures/event.rs @@ -68,8 +68,8 @@ pub mod message { pub mod login { use std::future::{self, Ready}; - pub use crate::login::Event; - use crate::login::event; + pub use crate::user::Event; + use crate::user::event; pub fn created(event: Event) -> Ready> { future::ready(match event { diff --git a/src/test/fixtures/identity.rs b/src/test/fixtures/identity.rs index ffc44c6..7611066 100644 --- a/src/test/fixtures/identity.rs +++ b/src/test/fixtures/identity.rs @@ -1,13 +1,13 @@ use crate::{ app::App, clock::RequestedAt, - login::Password, name::Name, test::fixtures, token::{ self, extract::{Identity, IdentityCookie}, }, + user::Password, }; pub async fn create(app: &App, created_at: &RequestedAt) -> Identity { @@ -27,7 +27,7 @@ pub async fn from_cookie( .await .expect("always validates newly-issued secret"); - Identity { token, login } + Identity { token, user: login } } pub async fn logged_in( @@ -43,5 +43,5 @@ pub fn fictitious() -> Identity { let token = token::Id::generate(); let login = fixtures::login::fictitious(); - Identity { token, login } + Identity { token, user: login } } diff --git a/src/test/fixtures/invite.rs b/src/test/fixtures/invite.rs index 654d1b4..7a41eb6 100644 --- a/src/test/fixtures/invite.rs +++ b/src/test/fixtures/invite.rs @@ -2,10 +2,10 @@ use crate::{ app::App, clock::DateTime, invite::{self, Invite}, - login::Login, + user::User, }; -pub async fn issue(app: &App, issuer: &Login, issued_at: &DateTime) -> Invite { +pub async fn issue(app: &App, issuer: &User, issued_at: &DateTime) -> Invite { app.invites() .issue(issuer, issued_at) .await diff --git a/src/test/fixtures/login.rs b/src/test/fixtures/login.rs index 86e3e39..e668c95 100644 --- a/src/test/fixtures/login.rs +++ b/src/test/fixtures/login.rs @@ -4,14 +4,14 @@ use uuid::Uuid; use crate::{ app::App, clock::RequestedAt, - login::{self, Login, Password}, name::Name, + user::{self, Password, User}, }; pub async fn create_with_password(app: &App, created_at: &RequestedAt) -> (Name, Password) { let (name, password) = propose(); let login = app - .logins() + .users() .create(&name, &password, created_at) .await .expect("should always succeed if the login is actually new"); @@ -19,17 +19,17 @@ pub async fn create_with_password(app: &App, created_at: &RequestedAt) -> (Name, (login.name, password) } -pub async fn create(app: &App, created_at: &RequestedAt) -> Login { +pub async fn create(app: &App, created_at: &RequestedAt) -> User { let (name, password) = propose(); - app.logins() + app.users() .create(&name, &password, created_at) .await .expect("should always succeed if the login is actually new") } -pub fn fictitious() -> Login { - Login { - id: login::Id::generate(), +pub fn fictitious() -> User { + User { + id: user::Id::generate(), name: propose_name(), } } diff --git a/src/test/fixtures/message.rs b/src/test/fixtures/message.rs index d3b4719..2254915 100644 --- a/src/test/fixtures/message.rs +++ b/src/test/fixtures/message.rs @@ -4,11 +4,11 @@ use crate::{ app::App, channel::Channel, clock::RequestedAt, - login::Login, message::{self, Body, Message}, + user::User, }; -pub async fn send(app: &App, channel: &Channel, sender: &Login, sent_at: &RequestedAt) -> Message { +pub async fn send(app: &App, channel: &Channel, sender: &User, sent_at: &RequestedAt) -> Message { let body = propose(); app.messages() -- cgit v1.2.3 From 5e4e052c400bb88933125f3549cec6dc12a9d09b Mon Sep 17 00:00:00 2001 From: Owen Jacobson Date: Sun, 23 Mar 2025 19:06:43 -0400 Subject: Rename `login` to `user` throughout the server --- src/boot/app.rs | 2 +- src/boot/mod.rs | 2 +- src/boot/routes/get.rs | 4 +-- src/boot/routes/test.rs | 12 ++++---- src/channel/routes/channel/test/delete.rs | 2 +- src/event/app.rs | 6 ++-- src/event/mod.rs | 6 ++-- src/event/routes/test/invite.rs | 16 +++++----- src/event/routes/test/message.rs | 18 +++++------ src/event/routes/test/resume.rs | 4 +-- src/event/routes/test/setup.rs | 6 ++-- src/event/routes/test/token.rs | 12 ++++---- src/invite/routes/invite/test/get.rs | 4 +-- src/invite/routes/invite/test/post.rs | 28 ++++++++--------- src/message/routes/message/test.rs | 8 ++--- src/setup/routes/test.rs | 10 +++--- src/test/fixtures/event.rs | 6 ++-- src/test/fixtures/identity.rs | 4 +-- src/test/fixtures/login.rs | 51 ------------------------------- src/test/fixtures/mod.rs | 2 +- src/test/fixtures/user.rs | 51 +++++++++++++++++++++++++++++++ src/user/routes/login/test.rs | 10 +++--- src/user/routes/logout/test.rs | 2 +- src/user/routes/password/test.rs | 4 +-- 24 files changed, 135 insertions(+), 135 deletions(-) delete mode 100644 src/test/fixtures/login.rs create mode 100644 src/test/fixtures/user.rs (limited to 'src/test/fixtures') diff --git a/src/boot/app.rs b/src/boot/app.rs index 9c2559e..264d5ae 100644 --- a/src/boot/app.rs +++ b/src/boot/app.rs @@ -45,7 +45,7 @@ impl<'a> Boot<'a> { Ok(Snapshot { resume_point, - logins, + users: logins, channels, messages, }) diff --git a/src/boot/mod.rs b/src/boot/mod.rs index d614df5..c52b088 100644 --- a/src/boot/mod.rs +++ b/src/boot/mod.rs @@ -8,7 +8,7 @@ pub use self::routes::router; #[derive(serde::Serialize)] pub struct Snapshot { pub resume_point: Sequence, - pub logins: Vec, + pub users: Vec, pub channels: Vec, pub messages: Vec, } diff --git a/src/boot/routes/get.rs b/src/boot/routes/get.rs index c04c6b3..4873b7a 100644 --- a/src/boot/routes/get.rs +++ b/src/boot/routes/get.rs @@ -8,14 +8,14 @@ use crate::{app::App, boot::Snapshot, error::Internal, token::extract::Identity, pub async fn handler(State(app): State, identity: Identity) -> Result { let snapshot = app.boot().snapshot().await?; Ok(Response { - login: identity.user, + user: identity.user, snapshot, }) } #[derive(serde::Serialize)] pub struct Response { - pub login: User, + pub user: User, #[serde(flatten)] pub snapshot: Snapshot, } diff --git a/src/boot/routes/test.rs b/src/boot/routes/test.rs index 5bd9f66..55802fe 100644 --- a/src/boot/routes/test.rs +++ b/src/boot/routes/test.rs @@ -12,20 +12,20 @@ async fn returns_identity() { .await .expect("boot always succeeds"); - assert_eq!(viewer.user, response.login); + assert_eq!(viewer.user, response.user); } #[tokio::test] async fn includes_logins() { let app = fixtures::scratch_app().await; - let spectator = fixtures::login::create(&app, &fixtures::now()).await; + let spectator = fixtures::user::create(&app, &fixtures::now()).await; let viewer = fixtures::identity::fictitious(); let response = get::handler(State(app), viewer) .await .expect("boot always succeeds"); - assert!(response.snapshot.logins.contains(&spectator)); + assert!(response.snapshot.users.contains(&spectator)); } #[tokio::test] @@ -44,7 +44,7 @@ async fn includes_channels() { #[tokio::test] async fn includes_messages() { let app = fixtures::scratch_app().await; - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; let channel = fixtures::channel::create(&app, &fixtures::now()).await; let message = fixtures::message::send(&app, &channel, &sender, &fixtures::now()).await; @@ -59,7 +59,7 @@ async fn includes_messages() { #[tokio::test] async fn excludes_expired_messages() { let app = fixtures::scratch_app().await; - let sender = fixtures::login::create(&app, &fixtures::ancient()).await; + let sender = fixtures::user::create(&app, &fixtures::ancient()).await; let channel = fixtures::channel::create(&app, &fixtures::ancient()).await; let expired_message = fixtures::message::send(&app, &channel, &sender, &fixtures::ancient()).await; @@ -80,7 +80,7 @@ async fn excludes_expired_messages() { #[tokio::test] async fn excludes_deleted_messages() { let app = fixtures::scratch_app().await; - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; let channel = fixtures::channel::create(&app, &fixtures::now()).await; let deleted_message = fixtures::message::send(&app, &channel, &sender, &fixtures::now()).await; diff --git a/src/channel/routes/channel/test/delete.rs b/src/channel/routes/channel/test/delete.rs index 77a0b03..bd9261d 100644 --- a/src/channel/routes/channel/test/delete.rs +++ b/src/channel/routes/channel/test/delete.rs @@ -156,7 +156,7 @@ pub async fn channel_not_empty() { let app = fixtures::scratch_app().await; let channel = fixtures::channel::create(&app, &fixtures::now()).await; - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; fixtures::message::send(&app, &channel, &sender, &fixtures::now()).await; // Send the request diff --git a/src/event/app.rs b/src/event/app.rs index 447a98f..45a9099 100644 --- a/src/event/app.rs +++ b/src/event/app.rs @@ -33,8 +33,8 @@ impl<'a> Events<'a> { let mut tx = self.db.begin().await?; - let logins = tx.users().replay(resume_at).await?; - let login_events = logins + let users = tx.users().replay(resume_at).await?; + let user_events = users .iter() .map(user::History::events) .kmerge_by(Sequence::merge) @@ -57,7 +57,7 @@ impl<'a> Events<'a> { .filter(Sequence::after(resume_at)) .map(Event::from); - let replay_events = login_events + let replay_events = user_events .merge_by(channel_events, Sequence::merge) .merge_by(message_events, Sequence::merge) .collect::>(); diff --git a/src/event/mod.rs b/src/event/mod.rs index 773adc3..3ab88ec 100644 --- a/src/event/mod.rs +++ b/src/event/mod.rs @@ -16,7 +16,7 @@ pub use self::{ #[derive(Clone, Debug, Eq, PartialEq, serde::Serialize)] #[serde(tag = "type", rename_all = "snake_case")] pub enum Event { - Login(user::Event), + User(user::Event), Channel(channel::Event), Message(message::Event), } @@ -24,7 +24,7 @@ pub enum Event { impl Sequenced for Event { fn instant(&self) -> Instant { match self { - Self::Login(event) => event.instant(), + Self::User(event) => event.instant(), Self::Channel(event) => event.instant(), Self::Message(event) => event.instant(), } @@ -33,7 +33,7 @@ impl Sequenced for Event { impl From for Event { fn from(event: user::Event) -> Self { - Self::Login(event) + Self::User(event) } } diff --git a/src/event/routes/test/invite.rs b/src/event/routes/test/invite.rs index 80b4291..1d1bec6 100644 --- a/src/event/routes/test/invite.rs +++ b/src/event/routes/test/invite.rs @@ -12,7 +12,7 @@ async fn accepting_invite() { // Set up the environment let app = fixtures::scratch_app().await; - let issuer = fixtures::login::create(&app, &fixtures::now()).await; + let issuer = fixtures::user::create(&app, &fixtures::now()).await; let invite = fixtures::invite::issue(&app, &issuer, &fixtures::now()).await; let resume_point = fixtures::boot::resume_point(&app).await; @@ -30,7 +30,7 @@ async fn accepting_invite() { // Accept the invite - let (name, password) = fixtures::login::propose(); + let (name, password) = fixtures::user::propose(); let (joiner, _) = app .invites() .accept(&invite.id, &name, &password, &fixtures::now()) @@ -40,8 +40,8 @@ async fn accepting_invite() { // Expect a login created event let _ = events - .filter_map(fixtures::event::login) - .filter_map(fixtures::event::login::created) + .filter_map(fixtures::event::user) + .filter_map(fixtures::event::user::created) .filter(|event| future::ready(event.user == joiner)) .next() .expect_some("a login created event is sent") @@ -53,13 +53,13 @@ async fn previously_accepted_invite() { // Set up the environment let app = fixtures::scratch_app().await; - let issuer = fixtures::login::create(&app, &fixtures::now()).await; + let issuer = fixtures::user::create(&app, &fixtures::now()).await; let invite = fixtures::invite::issue(&app, &issuer, &fixtures::now()).await; let resume_point = fixtures::boot::resume_point(&app).await; // Accept the invite - let (name, password) = fixtures::login::propose(); + let (name, password) = fixtures::user::propose(); let (joiner, _) = app .invites() .accept(&invite.id, &name, &password, &fixtures::now()) @@ -81,8 +81,8 @@ async fn previously_accepted_invite() { // Expect a login created event let _ = events - .filter_map(fixtures::event::login) - .filter_map(fixtures::event::login::created) + .filter_map(fixtures::event::user) + .filter_map(fixtures::event::user::created) .filter(|event| future::ready(event.user == joiner)) .next() .expect_some("a login created event is sent") diff --git a/src/event/routes/test/message.rs b/src/event/routes/test/message.rs index fafaeb3..84a3aec 100644 --- a/src/event/routes/test/message.rs +++ b/src/event/routes/test/message.rs @@ -32,7 +32,7 @@ async fn sending() { // Send a message - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; let message = app .messages() .send( @@ -65,7 +65,7 @@ async fn previously_sent() { // Send a message - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; let message = app .messages() .send( @@ -105,7 +105,7 @@ async fn sent_in_multiple_channels() { // Set up the environment let app = fixtures::scratch_app().await; - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; let resume_point = fixtures::boot::resume_point(&app).await; let channels = [ @@ -156,7 +156,7 @@ async fn sent_sequentially() { let app = fixtures::scratch_app().await; let channel = fixtures::channel::create(&app, &fixtures::now()).await; - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; let resume_point = fixtures::boot::resume_point(&app).await; let messages = vec![ @@ -200,7 +200,7 @@ async fn expiring() { let app = fixtures::scratch_app().await; let channel = fixtures::channel::create(&app, &fixtures::ancient()).await; - let sender = fixtures::login::create(&app, &fixtures::ancient()).await; + let sender = fixtures::user::create(&app, &fixtures::ancient()).await; let message = fixtures::message::send(&app, &channel, &sender, &fixtures::ancient()).await; let resume_point = fixtures::boot::resume_point(&app).await; @@ -239,7 +239,7 @@ async fn previously_expired() { let app = fixtures::scratch_app().await; let channel = fixtures::channel::create(&app, &fixtures::ancient()).await; - let sender = fixtures::login::create(&app, &fixtures::ancient()).await; + let sender = fixtures::user::create(&app, &fixtures::ancient()).await; let message = fixtures::message::send(&app, &channel, &sender, &fixtures::ancient()).await; let resume_point = fixtures::boot::resume_point(&app).await; @@ -278,7 +278,7 @@ async fn deleting() { let app = fixtures::scratch_app().await; let channel = fixtures::channel::create(&app, &fixtures::now()).await; - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; let message = fixtures::message::send(&app, &channel, &sender, &fixtures::now()).await; let resume_point = fixtures::boot::resume_point(&app).await; @@ -317,7 +317,7 @@ async fn previously_deleted() { let app = fixtures::scratch_app().await; let channel = fixtures::channel::create(&app, &fixtures::now()).await; - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; let message = fixtures::message::send(&app, &channel, &sender, &fixtures::now()).await; let resume_point = fixtures::boot::resume_point(&app).await; @@ -356,7 +356,7 @@ async fn previously_purged() { let app = fixtures::scratch_app().await; let channel = fixtures::channel::create(&app, &fixtures::ancient()).await; - let sender = fixtures::login::create(&app, &fixtures::ancient()).await; + let sender = fixtures::user::create(&app, &fixtures::ancient()).await; let message = fixtures::message::send(&app, &channel, &sender, &fixtures::ancient()).await; let resume_point = fixtures::boot::resume_point(&app).await; diff --git a/src/event/routes/test/resume.rs b/src/event/routes/test/resume.rs index dc27691..633eae3 100644 --- a/src/event/routes/test/resume.rs +++ b/src/event/routes/test/resume.rs @@ -15,7 +15,7 @@ async fn resume() { let app = fixtures::scratch_app().await; let channel = fixtures::channel::create(&app, &fixtures::now()).await; - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; let resume_point = fixtures::boot::resume_point(&app).await; let initial_message = fixtures::message::send(&app, &channel, &sender, &fixtures::now()).await; @@ -96,7 +96,7 @@ async fn serial_resume() { // Set up the environment let app = fixtures::scratch_app().await; - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; let channel_a = fixtures::channel::create(&app, &fixtures::now()).await; let channel_b = fixtures::channel::create(&app, &fixtures::now()).await; let resume_point = fixtures::boot::resume_point(&app).await; diff --git a/src/event/routes/test/setup.rs b/src/event/routes/test/setup.rs index 345018e..1170fe4 100644 --- a/src/event/routes/test/setup.rs +++ b/src/event/routes/test/setup.rs @@ -19,7 +19,7 @@ async fn previously_completed() { // Complete initial setup - let (name, password) = fixtures::login::propose(); + let (name, password) = fixtures::user::propose(); let (owner, _) = app .setup() .initial(&name, &password, &fixtures::now()) @@ -41,8 +41,8 @@ async fn previously_completed() { // Expect a login created event let _ = events - .filter_map(fixtures::event::login) - .filter_map(fixtures::event::login::created) + .filter_map(fixtures::event::user) + .filter_map(fixtures::event::user::created) .filter(|event| future::ready(event.user == owner)) .next() .expect_some("a login created event is sent") diff --git a/src/event/routes/test/token.rs b/src/event/routes/test/token.rs index d2232a4..a467de5 100644 --- a/src/event/routes/test/token.rs +++ b/src/event/routes/test/token.rs @@ -13,12 +13,12 @@ async fn terminates_on_token_expiry() { let app = fixtures::scratch_app().await; let channel = fixtures::channel::create(&app, &fixtures::now()).await; - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; let resume_point = fixtures::boot::resume_point(&app).await; // Subscribe via the endpoint - let subscriber_creds = fixtures::login::create_with_password(&app, &fixtures::now()).await; + let subscriber_creds = fixtures::user::create_with_password(&app, &fixtures::now()).await; let subscriber = fixtures::identity::logged_in(&app, &subscriber_creds, &fixtures::ancient()).await; @@ -60,7 +60,7 @@ async fn terminates_on_logout() { let app = fixtures::scratch_app().await; let channel = fixtures::channel::create(&app, &fixtures::now()).await; - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; let resume_point = fixtures::boot::resume_point(&app).await; // Subscribe via the endpoint @@ -106,12 +106,12 @@ async fn terminates_on_password_change() { let app = fixtures::scratch_app().await; let channel = fixtures::channel::create(&app, &fixtures::now()).await; - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; let resume_point = fixtures::boot::resume_point(&app).await; // Subscribe via the endpoint - let creds = fixtures::login::create_with_password(&app, &fixtures::now()).await; + let creds = fixtures::user::create_with_password(&app, &fixtures::now()).await; let cookie = fixtures::cookie::logged_in(&app, &creds, &fixtures::now()).await; let subscriber = fixtures::identity::from_cookie(&app, &cookie, &fixtures::now()).await; @@ -127,7 +127,7 @@ async fn terminates_on_password_change() { // Verify the resulting stream's behaviour let (_, password) = creds; - let to = fixtures::login::propose_password(); + let to = fixtures::user::propose_password(); app.tokens() .change_password(&subscriber.user, &password, &to, &fixtures::now()) .await diff --git a/src/invite/routes/invite/test/get.rs b/src/invite/routes/invite/test/get.rs index c6780ed..0dc8a79 100644 --- a/src/invite/routes/invite/test/get.rs +++ b/src/invite/routes/invite/test/get.rs @@ -7,7 +7,7 @@ async fn valid_invite() { // Set up the environment let app = fixtures::scratch_app().await; - let issuer = fixtures::login::create(&app, &fixtures::now()).await; + let issuer = fixtures::user::create(&app, &fixtures::now()).await; let invite = fixtures::invite::issue(&app, &issuer, &fixtures::now()).await; // Call endpoint @@ -45,7 +45,7 @@ async fn expired_invite() { // Set up the environment let app = fixtures::scratch_app().await; - let issuer = fixtures::login::create(&app, &fixtures::ancient()).await; + let issuer = fixtures::user::create(&app, &fixtures::ancient()).await; let invite = fixtures::invite::issue(&app, &issuer, &fixtures::ancient()).await; app.invites() diff --git a/src/invite/routes/invite/test/post.rs b/src/invite/routes/invite/test/post.rs index 3db764c..b204b32 100644 --- a/src/invite/routes/invite/test/post.rs +++ b/src/invite/routes/invite/test/post.rs @@ -11,12 +11,12 @@ async fn valid_invite() { // Set up the environment let app = fixtures::scratch_app().await; - let issuer = fixtures::login::create(&app, &fixtures::now()).await; + let issuer = fixtures::user::create(&app, &fixtures::now()).await; let invite = fixtures::invite::issue(&app, &issuer, &fixtures::now()).await; // Call the endpoint - let (name, password) = fixtures::login::propose(); + let (name, password) = fixtures::user::propose(); let identity = fixtures::cookie::not_logged_in(); let request = post::Request { name: name.clone(), @@ -68,7 +68,7 @@ async fn nonexistent_invite() { // Call the endpoint - let (name, password) = fixtures::login::propose(); + let (name, password) = fixtures::user::propose(); let identity = fixtures::cookie::not_logged_in(); let request = post::Request { name: name.clone(), @@ -94,7 +94,7 @@ async fn expired_invite() { // Set up the environment let app = fixtures::scratch_app().await; - let issuer = fixtures::login::create(&app, &fixtures::ancient()).await; + let issuer = fixtures::user::create(&app, &fixtures::ancient()).await; let invite = fixtures::invite::issue(&app, &issuer, &fixtures::ancient()).await; app.invites() @@ -104,7 +104,7 @@ async fn expired_invite() { // Call the endpoint - let (name, password) = fixtures::login::propose(); + let (name, password) = fixtures::user::propose(); let identity = fixtures::cookie::not_logged_in(); let request = post::Request { name: name.clone(), @@ -130,10 +130,10 @@ async fn accepted_invite() { // Set up the environment let app = fixtures::scratch_app().await; - let issuer = fixtures::login::create(&app, &fixtures::ancient()).await; + let issuer = fixtures::user::create(&app, &fixtures::ancient()).await; let invite = fixtures::invite::issue(&app, &issuer, &fixtures::ancient()).await; - let (name, password) = fixtures::login::propose(); + let (name, password) = fixtures::user::propose(); app.invites() .accept(&invite.id, &name, &password, &fixtures::now()) .await @@ -141,7 +141,7 @@ async fn accepted_invite() { // Call the endpoint - let (name, password) = fixtures::login::propose(); + let (name, password) = fixtures::user::propose(); let identity = fixtures::cookie::not_logged_in(); let request = post::Request { name: name.clone(), @@ -167,14 +167,14 @@ async fn conflicting_name() { // Set up the environment let app = fixtures::scratch_app().await; - let issuer = fixtures::login::create(&app, &fixtures::ancient()).await; + let issuer = fixtures::user::create(&app, &fixtures::ancient()).await; let invite = fixtures::invite::issue(&app, &issuer, &fixtures::ancient()).await; let existing_name = Name::from("rijksmuseum"); app.users() .create( &existing_name, - &fixtures::login::propose_password(), + &fixtures::user::propose_password(), &fixtures::now(), ) .await @@ -183,7 +183,7 @@ async fn conflicting_name() { // Call the endpoint let conflicting_name = Name::from("r\u{0133}ksmuseum"); - let password = fixtures::login::propose_password(); + let password = fixtures::user::propose_password(); let identity = fixtures::cookie::not_logged_in(); let request = post::Request { @@ -212,13 +212,13 @@ async fn invalid_name() { // Set up the environment let app = fixtures::scratch_app().await; - let issuer = fixtures::login::create(&app, &fixtures::now()).await; + let issuer = fixtures::user::create(&app, &fixtures::now()).await; let invite = fixtures::invite::issue(&app, &issuer, &fixtures::now()).await; // Call the endpoint - let name = fixtures::login::propose_invalid_name(); - let password = fixtures::login::propose_password(); + let name = fixtures::user::propose_invalid_name(); + let password = fixtures::user::propose_password(); let identity = fixtures::cookie::not_logged_in(); let request = post::Request { name: name.clone(), diff --git a/src/message/routes/message/test.rs b/src/message/routes/message/test.rs index 1abd91c..1888be7 100644 --- a/src/message/routes/message/test.rs +++ b/src/message/routes/message/test.rs @@ -62,7 +62,7 @@ pub async fn delete_deleted() { // Set up the environment let app = fixtures::scratch_app().await; - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; let channel = fixtures::channel::create(&app, &fixtures::now()).await; let message = fixtures::message::send(&app, &channel, &sender, &fixtures::now()).await; @@ -93,7 +93,7 @@ pub async fn delete_expired() { // Set up the environment let app = fixtures::scratch_app().await; - let sender = fixtures::login::create(&app, &fixtures::ancient()).await; + let sender = fixtures::user::create(&app, &fixtures::ancient()).await; let channel = fixtures::channel::create(&app, &fixtures::ancient()).await; let message = fixtures::message::send(&app, &channel, &sender, &fixtures::ancient()).await; @@ -124,7 +124,7 @@ pub async fn delete_purged() { // Set up the environment let app = fixtures::scratch_app().await; - let sender = fixtures::login::create(&app, &fixtures::ancient()).await; + let sender = fixtures::user::create(&app, &fixtures::ancient()).await; let channel = fixtures::channel::create(&app, &fixtures::ancient()).await; let message = fixtures::message::send(&app, &channel, &sender, &fixtures::ancient()).await; @@ -160,7 +160,7 @@ pub async fn delete_not_sender() { // Set up the environment let app = fixtures::scratch_app().await; - let sender = fixtures::login::create(&app, &fixtures::now()).await; + let sender = fixtures::user::create(&app, &fixtures::now()).await; let channel = fixtures::channel::create(&app, &fixtures::now()).await; let message = fixtures::message::send(&app, &channel, &sender, &fixtures::now()).await; diff --git a/src/setup/routes/test.rs b/src/setup/routes/test.rs index 5794b78..e9f5cd6 100644 --- a/src/setup/routes/test.rs +++ b/src/setup/routes/test.rs @@ -11,7 +11,7 @@ async fn fresh_instance() { // Call the endpoint let identity = fixtures::cookie::not_logged_in(); - let (name, password) = fixtures::login::propose(); + let (name, password) = fixtures::user::propose(); let request = post::Request { name: name.clone(), password: password.clone(), @@ -52,11 +52,11 @@ async fn login_exists() { // Set up the environment let app = fixtures::scratch_app().await; - fixtures::login::create(&app, &fixtures::now()).await; + fixtures::user::create(&app, &fixtures::now()).await; // Call the endpoint let identity = fixtures::cookie::not_logged_in(); - let (name, password) = fixtures::login::propose(); + let (name, password) = fixtures::user::propose(); let request = post::Request { name, password }; let post::Error(error) = post::handler(State(app.clone()), fixtures::now(), identity, Json(request)) @@ -76,8 +76,8 @@ async fn invalid_name() { // Call the endpoint - let name = fixtures::login::propose_invalid_name(); - let password = fixtures::login::propose_password(); + let name = fixtures::user::propose_invalid_name(); + let password = fixtures::user::propose_password(); let identity = fixtures::cookie::not_logged_in(); let request = post::Request { name: name.clone(), diff --git a/src/test/fixtures/event.rs b/src/test/fixtures/event.rs index c6e5337..a30bb4b 100644 --- a/src/test/fixtures/event.rs +++ b/src/test/fixtures/event.rs @@ -16,9 +16,9 @@ pub fn message(event: Event) -> Ready> { }) } -pub fn login(event: Event) -> Ready> { +pub fn user(event: Event) -> Ready> { future::ready(match event { - Event::Login(event) => Some(event), + Event::User(event) => Some(event), _ => None, }) } @@ -65,7 +65,7 @@ pub mod message { } } -pub mod login { +pub mod user { use std::future::{self, Ready}; pub use crate::user::Event; diff --git a/src/test/fixtures/identity.rs b/src/test/fixtures/identity.rs index 7611066..0b2f978 100644 --- a/src/test/fixtures/identity.rs +++ b/src/test/fixtures/identity.rs @@ -11,7 +11,7 @@ use crate::{ }; pub async fn create(app: &App, created_at: &RequestedAt) -> Identity { - let credentials = fixtures::login::create_with_password(app, created_at).await; + let credentials = fixtures::user::create_with_password(app, created_at).await; logged_in(app, &credentials, created_at).await } @@ -41,7 +41,7 @@ pub async fn logged_in( pub fn fictitious() -> Identity { let token = token::Id::generate(); - let login = fixtures::login::fictitious(); + let login = fixtures::user::fictitious(); Identity { token, user: login } } diff --git a/src/test/fixtures/login.rs b/src/test/fixtures/login.rs deleted file mode 100644 index e668c95..0000000 --- a/src/test/fixtures/login.rs +++ /dev/null @@ -1,51 +0,0 @@ -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 login = app - .users() - .create(&name, &password, created_at) - .await - .expect("should always succeed if the login is actually new"); - - (login.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() -} diff --git a/src/test/fixtures/mod.rs b/src/test/fixtures/mod.rs index 57eee30..418bdb5 100644 --- a/src/test/fixtures/mod.rs +++ b/src/test/fixtures/mod.rs @@ -9,8 +9,8 @@ pub mod event; pub mod future; pub mod identity; pub mod invite; -pub mod login; pub mod message; +pub mod user; pub async fn scratch_app() -> App { let pool = db::prepare("sqlite::memory:", "sqlite::memory:") diff --git a/src/test/fixtures/user.rs b/src/test/fixtures/user.rs new file mode 100644 index 0000000..e668c95 --- /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 login = app + .users() + .create(&name, &password, created_at) + .await + .expect("should always succeed if the login is actually new"); + + (login.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() +} diff --git a/src/user/routes/login/test.rs b/src/user/routes/login/test.rs index 7399796..d2e7ee2 100644 --- a/src/user/routes/login/test.rs +++ b/src/user/routes/login/test.rs @@ -8,7 +8,7 @@ async fn correct_credentials() { // Set up the environment let app = fixtures::scratch_app().await; - let (name, password) = fixtures::login::create_with_password(&app, &fixtures::now()).await; + let (name, password) = fixtures::user::create_with_password(&app, &fixtures::now()).await; // Call the endpoint @@ -52,7 +52,7 @@ async fn invalid_name() { let identity = fixtures::cookie::not_logged_in(); let logged_in_at = fixtures::now(); - let (name, password) = fixtures::login::propose(); + let (name, password) = fixtures::user::propose(); let request = post::Request { name: name.clone(), password, @@ -72,7 +72,7 @@ async fn incorrect_password() { // Set up the environment let app = fixtures::scratch_app().await; - let login = fixtures::login::create(&app, &fixtures::now()).await; + let login = fixtures::user::create(&app, &fixtures::now()).await; // Call the endpoint @@ -80,7 +80,7 @@ async fn incorrect_password() { let identity = fixtures::cookie::not_logged_in(); let request = post::Request { name: login.name, - password: fixtures::login::propose_password(), + password: fixtures::user::propose_password(), }; let post::Error(error) = post::handler(State(app.clone()), logged_in_at, identity, Json(request)) @@ -97,7 +97,7 @@ async fn token_expires() { // Set up the environment let app = fixtures::scratch_app().await; - let (name, password) = fixtures::login::create_with_password(&app, &fixtures::now()).await; + let (name, password) = fixtures::user::create_with_password(&app, &fixtures::now()).await; // Call the endpoint diff --git a/src/user/routes/logout/test.rs b/src/user/routes/logout/test.rs index 775fa9f..ce93760 100644 --- a/src/user/routes/logout/test.rs +++ b/src/user/routes/logout/test.rs @@ -12,7 +12,7 @@ async fn successful() { let app = fixtures::scratch_app().await; let now = fixtures::now(); - let creds = fixtures::login::create_with_password(&app, &fixtures::now()).await; + let creds = fixtures::user::create_with_password(&app, &fixtures::now()).await; let identity = fixtures::cookie::logged_in(&app, &creds, &now).await; let secret = fixtures::cookie::secret(&identity); diff --git a/src/user/routes/password/test.rs b/src/user/routes/password/test.rs index 01dcb38..f977327 100644 --- a/src/user/routes/password/test.rs +++ b/src/user/routes/password/test.rs @@ -10,13 +10,13 @@ use crate::{ async fn password_change() { // Set up the environment let app = fixtures::scratch_app().await; - let creds = fixtures::login::create_with_password(&app, &fixtures::now()).await; + let creds = fixtures::user::create_with_password(&app, &fixtures::now()).await; let cookie = fixtures::cookie::logged_in(&app, &creds, &fixtures::now()).await; let identity = fixtures::identity::from_cookie(&app, &cookie, &fixtures::now()).await; // Call the endpoint let (name, password) = creds; - let to = fixtures::login::propose_password(); + let to = fixtures::user::propose_password(); let request = post::Request { password: password.clone(), to: to.clone(), -- cgit v1.2.3 From 45eea07a56022f647b3a273798a5255cda73f13d Mon Sep 17 00:00:00 2001 From: Owen Jacobson Date: Mon, 24 Mar 2025 23:33:36 -0400 Subject: Rename a bunch of straggler references to `login`. --- src/boot/app.rs | 8 ++++---- src/setup/app.rs | 4 ++-- src/setup/routes/post.rs | 4 ++-- src/test/fixtures/identity.rs | 8 ++++---- src/test/fixtures/user.rs | 4 ++-- src/token/app.rs | 26 +++++++++++++------------- src/token/repo/auth.rs | 8 ++++---- src/token/repo/token.rs | 20 ++++++++++---------- 8 files changed, 41 insertions(+), 41 deletions(-) (limited to 'src/test/fixtures') diff --git a/src/boot/app.rs b/src/boot/app.rs index 264d5ae..f531afe 100644 --- a/src/boot/app.rs +++ b/src/boot/app.rs @@ -22,15 +22,15 @@ impl<'a> Boot<'a> { let mut tx = self.db.begin().await?; let resume_point = tx.sequence().current().await?; - let logins = tx.users().all(resume_point).await?; + let users = tx.users().all(resume_point).await?; let channels = tx.channels().all(resume_point).await?; let messages = tx.messages().all(resume_point).await?; tx.commit().await?; - let logins = logins + let users = users .into_iter() - .filter_map(|login| login.as_of(resume_point)) + .filter_map(|user| user.as_of(resume_point)) .collect(); let channels = channels @@ -45,7 +45,7 @@ impl<'a> Boot<'a> { Ok(Snapshot { resume_point, - users: logins, + users, channels, messages, }) diff --git a/src/setup/app.rs b/src/setup/app.rs index 9f31c01..26eed7a 100644 --- a/src/setup/app.rs +++ b/src/setup/app.rs @@ -41,9 +41,9 @@ impl<'a> Setup<'a> { let secret = tx.tokens().issue(stored.user(), created_at).await?; tx.commit().await?; - let login = stored.publish(self.events); + let user = stored.publish(self.events); - Ok((login.as_created(), secret)) + Ok((user.as_created(), secret)) } pub async fn completed(&self) -> Result { diff --git a/src/setup/routes/post.rs b/src/setup/routes/post.rs index 9c6b7a6..0ff5d69 100644 --- a/src/setup/routes/post.rs +++ b/src/setup/routes/post.rs @@ -20,13 +20,13 @@ pub async fn handler( identity: IdentityCookie, Json(request): Json, ) -> Result<(IdentityCookie, Json), Error> { - let (login, secret) = app + let (user, secret) = app .setup() .initial(&request.name, &request.password, &setup_at) .await .map_err(Error)?; let identity = identity.set(secret); - Ok((identity, Json(login))) + Ok((identity, Json(user))) } #[derive(serde::Deserialize)] diff --git a/src/test/fixtures/identity.rs b/src/test/fixtures/identity.rs index 0b2f978..cb325d8 100644 --- a/src/test/fixtures/identity.rs +++ b/src/test/fixtures/identity.rs @@ -21,13 +21,13 @@ pub async fn from_cookie( validated_at: &RequestedAt, ) -> Identity { let secret = cookie.secret().expect("identity token has a secret"); - let (token, login) = app + let (token, user) = app .tokens() .validate(&secret, validated_at) .await .expect("always validates newly-issued secret"); - Identity { token, user: login } + Identity { token, user } } pub async fn logged_in( @@ -41,7 +41,7 @@ pub async fn logged_in( pub fn fictitious() -> Identity { let token = token::Id::generate(); - let login = fixtures::user::fictitious(); + let user = fixtures::user::fictitious(); - Identity { token, user: login } + Identity { token, user } } diff --git a/src/test/fixtures/user.rs b/src/test/fixtures/user.rs index e668c95..6448f64 100644 --- a/src/test/fixtures/user.rs +++ b/src/test/fixtures/user.rs @@ -10,13 +10,13 @@ use crate::{ pub async fn create_with_password(app: &App, created_at: &RequestedAt) -> (Name, Password) { let (name, password) = propose(); - let login = app + let user = app .users() .create(&name, &password, created_at) .await .expect("should always succeed if the login is actually new"); - (login.name, password) + (user.name, password) } pub async fn create(app: &App, created_at: &RequestedAt) -> User { diff --git a/src/token/app.rs b/src/token/app.rs index 211df81..46b2d73 100644 --- a/src/token/app.rs +++ b/src/token/app.rs @@ -33,7 +33,7 @@ impl<'a> Tokens<'a> { login_at: &DateTime, ) -> Result<(User, Secret), LoginError> { let mut tx = self.db.begin().await?; - let (login, stored_hash) = tx + let (user, stored_hash) = tx .auth() .for_name(name) .await @@ -46,11 +46,11 @@ impl<'a> Tokens<'a> { // if the account is deleted during that time. tx.commit().await?; - let snapshot = login.as_snapshot().ok_or(LoginError::Rejected)?; + let snapshot = user.as_snapshot().ok_or(LoginError::Rejected)?; let token = if stored_hash.verify(password)? { let mut tx = self.db.begin().await?; - let token = tx.tokens().issue(&login, login_at).await?; + let token = tx.tokens().issue(&user, login_at).await?; tx.commit().await?; token } else { @@ -62,15 +62,15 @@ impl<'a> Tokens<'a> { pub async fn change_password( &self, - login: &User, + user: &User, password: &Password, to: &Password, changed_at: &DateTime, ) -> Result<(User, Secret), LoginError> { let mut tx = self.db.begin().await?; - let (login, stored_hash) = tx + let (user, stored_hash) = tx .auth() - .for_login(login) + .for_user(user) .await .optional()? .ok_or(LoginError::Rejected)?; @@ -85,13 +85,13 @@ impl<'a> Tokens<'a> { return Err(LoginError::Rejected); } - let snapshot = login.as_snapshot().ok_or(LoginError::Rejected)?; + let snapshot = user.as_snapshot().ok_or(LoginError::Rejected)?; let to_hash = to.hash()?; let mut tx = self.db.begin().await?; - let tokens = tx.tokens().revoke_all(&login).await?; - tx.users().set_password(&login, &to_hash).await?; - let secret = tx.tokens().issue(&login, changed_at).await?; + let tokens = tx.tokens().revoke_all(&user).await?; + tx.users().set_password(&user, &to_hash).await?; + let secret = tx.tokens().issue(&user, changed_at).await?; tx.commit().await?; for event in tokens.into_iter().map(TokenEvent::Revoked) { @@ -107,16 +107,16 @@ impl<'a> Tokens<'a> { used_at: &DateTime, ) -> Result<(Id, User), ValidateError> { let mut tx = self.db.begin().await?; - let (token, login) = tx + let (token, user) = tx .tokens() .validate(secret, used_at) .await .not_found(|| ValidateError::InvalidToken)?; tx.commit().await?; - let login = login.as_snapshot().ok_or(ValidateError::LoginDeleted)?; + let user = user.as_snapshot().ok_or(ValidateError::LoginDeleted)?; - Ok((token, login)) + Ok((token, user)) } pub async fn limit_stream( diff --git a/src/token/repo/auth.rs b/src/token/repo/auth.rs index a1f4aad..68a81c7 100644 --- a/src/token/repo/auth.rs +++ b/src/token/repo/auth.rs @@ -51,7 +51,7 @@ impl Auth<'_> { Ok((login, row.password_hash)) } - pub async fn for_login(&mut self, login: &User) -> Result<(History, StoredHash), LoadError> { + pub async fn for_user(&mut self, user: &User) -> Result<(History, StoredHash), LoadError> { let row = sqlx::query!( r#" select @@ -64,12 +64,12 @@ impl Auth<'_> { from user where id = $1 "#, - login.id, + user.id, ) .fetch_one(&mut *self.0) .await?; - let login = History { + let user = History { user: User { id: row.id, name: Name::new(row.display_name, row.canonical_name)?, @@ -77,7 +77,7 @@ impl Auth<'_> { created: Instant::new(row.created_at, row.created_sequence), }; - Ok((login, row.password_hash)) + Ok((user, row.password_hash)) } } diff --git a/src/token/repo/token.rs b/src/token/repo/token.rs index 145ba2d..e49c2d4 100644 --- a/src/token/repo/token.rs +++ b/src/token/repo/token.rs @@ -27,12 +27,12 @@ impl Tokens<'_> { // be used to control expiry, until the token is actually used. pub async fn issue( &mut self, - login: &History, + user: &History, issued_at: &DateTime, ) -> Result { let id = Id::generate(); let secret = Uuid::new_v4().to_string(); - let login = login.id(); + let user = user.id(); let secret = sqlx::query_scalar!( r#" @@ -43,7 +43,7 @@ impl Tokens<'_> { "#, id, secret, - login, + user, issued_at, ) .fetch_one(&mut *self.0) @@ -85,8 +85,8 @@ impl Tokens<'_> { } // Revoke tokens for a login - pub async fn revoke_all(&mut self, login: &user::History) -> Result, sqlx::Error> { - let login = login.id(); + pub async fn revoke_all(&mut self, user: &user::History) -> Result, sqlx::Error> { + let user = user.id(); let tokens = sqlx::query_scalar!( r#" delete @@ -94,7 +94,7 @@ impl Tokens<'_> { where user = $1 returning id as "id: Id" "#, - login, + user, ) .fetch_all(&mut *self.0) .await?; @@ -132,7 +132,7 @@ impl Tokens<'_> { // sqlite3, as of this writing, does not allow an update's `returning` // clause to reference columns from tables joined into the update. Two // queries is fine, but it feels untidy. - let (token, login) = sqlx::query!( + let (token, user) = sqlx::query!( r#" update token set last_used_at = $1 @@ -148,7 +148,7 @@ impl Tokens<'_> { .fetch_one(&mut *self.0) .await?; - let login = sqlx::query!( + let user = sqlx::query!( r#" select id as "id: user::Id", @@ -159,7 +159,7 @@ impl Tokens<'_> { from user where id = $1 "#, - login, + user, ) .map(|row| { Ok::<_, name::Error>(History { @@ -173,7 +173,7 @@ impl Tokens<'_> { .fetch_one(&mut *self.0) .await??; - Ok((token, login)) + Ok((token, user)) } } -- cgit v1.2.3