diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2024-10-24 22:50:23 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2024-10-24 22:50:23 -0400 |
| commit | eae0edb57e9ade7c73affb78baf2ae267b6290b8 (patch) | |
| tree | d26f6d32d055ebd8b8f2d6a4b37e3e4bc58522a9 | |
| parent | 0bb17bd01640492db2685e67bacac12dd54a9f59 (diff) | |
Consolidate test helper event functions
| -rw-r--r-- | src/channel/routes/channel/test/post.rs | 2 | ||||
| -rw-r--r-- | src/channel/routes/test.rs | 4 | ||||
| -rw-r--r-- | src/event/routes/test/channel.rs | 30 | ||||
| -rw-r--r-- | src/event/routes/test/invite.rs | 8 | ||||
| -rw-r--r-- | src/event/routes/test/message.rs | 32 | ||||
| -rw-r--r-- | src/event/routes/test/resume.rs | 20 | ||||
| -rw-r--r-- | src/event/routes/test/setup.rs | 4 | ||||
| -rw-r--r-- | src/event/routes/test/token.rs | 8 | ||||
| -rw-r--r-- | src/test/fixtures/channel.rs | 24 | ||||
| -rw-r--r-- | src/test/fixtures/event.rs | 79 | ||||
| -rw-r--r-- | src/test/fixtures/login.rs | 16 | ||||
| -rw-r--r-- | src/test/fixtures/message.rs | 26 | ||||
| -rw-r--r-- | src/test/fixtures/mod.rs | 1 |
13 files changed, 134 insertions, 120 deletions
diff --git a/src/channel/routes/channel/test/post.rs b/src/channel/routes/channel/test/post.rs index 67e7d36..d81715f 100644 --- a/src/channel/routes/channel/test/post.rs +++ b/src/channel/routes/channel/test/post.rs @@ -44,7 +44,7 @@ async fn messages_in_order() { .subscribe(None) .await .expect("subscribing to a valid channel succeeds") - .filter_map(fixtures::message::events) + .filter_map(fixtures::event::message) .take(requests.len()); let events = events.collect::<Vec<_>>().immediately().await; diff --git a/src/channel/routes/test.rs b/src/channel/routes/test.rs index 216eba1..46c58b0 100644 --- a/src/channel/routes/test.rs +++ b/src/channel/routes/test.rs @@ -48,8 +48,8 @@ async fn new_channel() { .subscribe(None) .await .expect("subscribing never fails") - .filter_map(fixtures::channel::events) - .filter_map(fixtures::channel::created) + .filter_map(fixtures::event::channel) + .filter_map(fixtures::event::channel::created) .filter(|event| future::ready(event.channel == response)); let event = events diff --git a/src/event/routes/test/channel.rs b/src/event/routes/test/channel.rs index ac45bfc..0ab28c4 100644 --- a/src/event/routes/test/channel.rs +++ b/src/event/routes/test/channel.rs @@ -33,8 +33,8 @@ async fn creating() { // Verify channel created event let _ = events - .filter_map(fixtures::channel::events) - .filter_map(fixtures::channel::created) + .filter_map(fixtures::event::channel) + .filter_map(fixtures::event::channel::created) .filter(|event| future::ready(event.channel == channel)) .next() .immediately() @@ -68,8 +68,8 @@ async fn previously_created() { // Verify channel created event let _ = events - .filter_map(fixtures::channel::events) - .filter_map(fixtures::channel::created) + .filter_map(fixtures::event::channel) + .filter_map(fixtures::event::channel::created) .filter(|event| future::ready(event.channel == channel)) .next() .immediately() @@ -101,8 +101,8 @@ async fn expiring() { // Check for expiry event let _ = events - .filter_map(fixtures::channel::events) - .filter_map(fixtures::channel::deleted) + .filter_map(fixtures::event::channel) + .filter_map(fixtures::event::channel::deleted) .filter(|event| future::ready(event.id == channel.id)) .next() .immediately() @@ -134,8 +134,8 @@ async fn previously_expired() { // Check for expiry event let _ = events - .filter_map(fixtures::channel::events) - .filter_map(fixtures::channel::deleted) + .filter_map(fixtures::event::channel) + .filter_map(fixtures::event::channel::deleted) .filter(|event| future::ready(event.id == channel.id)) .next() .immediately() @@ -167,8 +167,8 @@ async fn deleting() { // Check for delete event let _ = events - .filter_map(fixtures::channel::events) - .filter_map(fixtures::channel::deleted) + .filter_map(fixtures::event::channel) + .filter_map(fixtures::event::channel::deleted) .filter(|event| future::ready(event.id == channel.id)) .next() .immediately() @@ -182,8 +182,6 @@ 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 message = fixtures::message::send(&app, &channel, &sender, &fixtures::now()).await; // Delete the channel @@ -202,11 +200,11 @@ async fn previously_deleted() { // Check for expiry event let _ = events - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::deleted) - .filter(|event| future::ready(event.id == message.id)) + .filter_map(fixtures::event::channel) + .filter_map(fixtures::event::channel::deleted) + .filter(|event| future::ready(event.id == channel.id)) .next() .immediately() .await - .expect("a deleted message will be delivered"); + .expect("a deleted channel event will be delivered"); } diff --git a/src/event/routes/test/invite.rs b/src/event/routes/test/invite.rs index 10e4521..afd3aeb 100644 --- a/src/event/routes/test/invite.rs +++ b/src/event/routes/test/invite.rs @@ -35,8 +35,8 @@ async fn accepting_invite() { // Expect a login created event let _ = events - .filter_map(fixtures::login::events) - .filter_map(fixtures::login::created) + .filter_map(fixtures::event::login) + .filter_map(fixtures::event::login::created) .filter(|event| future::ready(event.login == joiner)) .next() .immediately() @@ -72,8 +72,8 @@ async fn previously_accepted_invite() { // Expect a login created event let _ = events - .filter_map(fixtures::login::events) - .filter_map(fixtures::login::created) + .filter_map(fixtures::event::login) + .filter_map(fixtures::event::login::created) .filter(|event| future::ready(event.login == joiner)) .next() .immediately() diff --git a/src/event/routes/test/message.rs b/src/event/routes/test/message.rs index 9bbbc7d..df42a89 100644 --- a/src/event/routes/test/message.rs +++ b/src/event/routes/test/message.rs @@ -42,8 +42,8 @@ async fn sending() { // Verify that an event is delivered let _ = events - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::sent) + .filter_map(fixtures::event::message) + .filter_map(fixtures::event::message::sent) .filter(|event| future::ready(event.message == message)) .next() .immediately() @@ -83,8 +83,8 @@ async fn previously_sent() { // Verify that an event is delivered let _ = events - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::sent) + .filter_map(fixtures::event::message) + .filter_map(fixtures::event::message::sent) .filter(|event| future::ready(event.message == message)) .next() .immediately() @@ -124,8 +124,8 @@ async fn sent_in_multiple_channels() { // Verify the structure of the response. let events = events - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::sent) + .filter_map(fixtures::event::message) + .filter_map(fixtures::event::message::sent) .take(messages.len()) .collect::<Vec<_>>() .immediately() @@ -160,8 +160,8 @@ async fn sent_sequentially() { // Verify the expected events in the expected order let mut events = events - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::sent) + .filter_map(fixtures::event::message) + .filter_map(fixtures::event::message::sent) .filter(|event| future::ready(messages.iter().any(|message| &event.message == message))); for message in &messages { @@ -201,8 +201,8 @@ async fn expiring() { // Check for expiry event let _ = events - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::deleted) + .filter_map(fixtures::event::message) + .filter_map(fixtures::event::message::deleted) .filter(|event| future::ready(event.id == message.id)) .next() .immediately() @@ -236,8 +236,8 @@ async fn previously_expired() { // Check for expiry event let _ = events - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::deleted) + .filter_map(fixtures::event::message) + .filter_map(fixtures::event::message::deleted) .filter(|event| future::ready(event.id == message.id)) .next() .immediately() @@ -271,8 +271,8 @@ async fn deleting() { // Check for delete event let _ = events - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::deleted) + .filter_map(fixtures::event::message) + .filter_map(fixtures::event::message::deleted) .filter(|event| future::ready(event.id == message.id)) .next() .immediately() @@ -306,8 +306,8 @@ async fn previously_deleted() { // Check for delete event let _ = events - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::deleted) + .filter_map(fixtures::event::message) + .filter_map(fixtures::event::message::deleted) .filter(|event| future::ready(event.id == message.id)) .next() .immediately() diff --git a/src/event/routes/test/resume.rs b/src/event/routes/test/resume.rs index c393d38..e4751bb 100644 --- a/src/event/routes/test/resume.rs +++ b/src/event/routes/test/resume.rs @@ -40,8 +40,8 @@ async fn resume() { .expect("subscribe never fails"); let event = events - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::sent) + .filter_map(fixtures::event::message) + .filter_map(fixtures::event::message::sent) .filter(|event| future::ready(event.message == initial_message)) .next() .immediately() @@ -64,8 +64,8 @@ async fn resume() { // Verify final events let mut events = resumed - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::sent) + .filter_map(fixtures::event::message) + .filter_map(fixtures::event::message::sent) .zip(stream::iter(later_messages)); while let Some((event, message)) = events.next().immediately().await { @@ -124,8 +124,8 @@ async fn serial_resume() { // Check for expected events let events = events - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::sent) + .filter_map(fixtures::event::message) + .filter_map(fixtures::event::message::sent) .zip(stream::iter(initial_messages)) .collect::<Vec<_>>() .immediately() @@ -165,8 +165,8 @@ async fn serial_resume() { // Check for expected events let events = events - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::sent) + .filter_map(fixtures::event::message) + .filter_map(fixtures::event::message::sent) .zip(stream::iter(resume_messages)) .collect::<Vec<_>>() .immediately() @@ -206,8 +206,8 @@ async fn serial_resume() { // Check for expected events let events = events - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::sent) + .filter_map(fixtures::event::message) + .filter_map(fixtures::event::message::sent) .zip(stream::iter(final_messages)) .collect::<Vec<_>>() .immediately() diff --git a/src/event/routes/test/setup.rs b/src/event/routes/test/setup.rs index 234c2d9..a54b65b 100644 --- a/src/event/routes/test/setup.rs +++ b/src/event/routes/test/setup.rs @@ -36,8 +36,8 @@ async fn previously_completed() { // Expect a login created event let _ = events - .filter_map(fixtures::login::events) - .filter_map(fixtures::login::created) + .filter_map(fixtures::event::login) + .filter_map(fixtures::event::login::created) .filter(|event| future::ready(event.login == owner)) .next() .immediately() diff --git a/src/event/routes/test/token.rs b/src/event/routes/test/token.rs index a545988..577fabd 100644 --- a/src/event/routes/test/token.rs +++ b/src/event/routes/test/token.rs @@ -41,8 +41,8 @@ async fn terminates_on_token_expiry() { ]; assert!(events - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::sent) + .filter_map(fixtures::event::message) + .filter_map(fixtures::event::message::sent) .filter(|event| future::ready(messages.iter().any(|message| &event.message == message))) .next() .immediately() @@ -87,8 +87,8 @@ async fn terminates_on_logout() { ]; assert!(events - .filter_map(fixtures::message::events) - .filter_map(fixtures::message::sent) + .filter_map(fixtures::event::message) + .filter_map(fixtures::event::message::sent) .filter(|event| future::ready(messages.iter().any(|message| &event.message == message))) .next() .immediately() diff --git a/src/test/fixtures/channel.rs b/src/test/fixtures/channel.rs index 1fd8d23..0c6480b 100644 --- a/src/test/fixtures/channel.rs +++ b/src/test/fixtures/channel.rs @@ -1,5 +1,3 @@ -use std::future; - use faker_rand::{ en_us::{addresses::CityName, names::FullName}, faker_impl_from_templates, @@ -10,7 +8,6 @@ use crate::{ app::App, channel::{self, Channel}, clock::RequestedAt, - event::Event, name::Name, }; @@ -31,27 +28,6 @@ faker_impl_from_templates! { NameTemplate; "{} {}", CityName, FullName; } -pub fn events(event: Event) -> future::Ready<Option<channel::Event>> { - future::ready(match event { - Event::Channel(channel) => Some(channel), - _ => None, - }) -} - -pub fn created(event: channel::Event) -> future::Ready<Option<channel::event::Created>> { - future::ready(match event { - channel::Event::Created(event) => Some(event), - channel::Event::Deleted(_) => None, - }) -} - -pub fn deleted(event: channel::Event) -> future::Ready<Option<channel::event::Deleted>> { - future::ready(match event { - channel::Event::Deleted(event) => Some(event), - channel::Event::Created(_) => None, - }) -} - pub fn fictitious() -> channel::Id { channel::Id::generate() } diff --git a/src/test/fixtures/event.rs b/src/test/fixtures/event.rs new file mode 100644 index 0000000..de02d4d --- /dev/null +++ b/src/test/fixtures/event.rs @@ -0,0 +1,79 @@ +use std::future::{self, Ready}; + +use crate::event::Event; + +pub fn channel(event: Event) -> Ready<Option<channel::Event>> { + future::ready(match event { + Event::Channel(channel) => Some(channel), + _ => None, + }) +} + +pub fn message(event: Event) -> Ready<Option<message::Event>> { + future::ready(match event { + Event::Message(event) => Some(event), + _ => None, + }) +} + +pub fn login(event: Event) -> Ready<Option<login::Event>> { + future::ready(match event { + Event::Login(event) => Some(event), + _ => None, + }) +} + +pub mod channel { + use std::future::{self, Ready}; + + use crate::channel::event; + pub use crate::channel::Event; + + pub fn created(event: Event) -> Ready<Option<event::Created>> { + future::ready(match event { + Event::Created(event) => Some(event), + Event::Deleted(_) => None, + }) + } + + pub fn deleted(event: Event) -> Ready<Option<event::Deleted>> { + future::ready(match event { + Event::Deleted(event) => Some(event), + Event::Created(_) => None, + }) + } +} + +pub mod message { + use std::future::{self, Ready}; + + use crate::message::event; + pub use crate::message::Event; + + pub fn sent(event: Event) -> Ready<Option<event::Sent>> { + future::ready(match event { + Event::Sent(event) => Some(event), + Event::Deleted(_) => None, + }) + } + + pub fn deleted(event: Event) -> future::Ready<Option<event::Deleted>> { + future::ready(match event { + Event::Deleted(event) => Some(event), + Event::Sent(_) => None, + }) + } +} + +pub mod login { + use std::future::{self, Ready}; + + use crate::login::event; + pub use crate::login::Event; + + pub fn created(event: Event) -> Ready<Option<event::Created>> { + future::ready(match event { + Event::Created(event) => Some(event), + }) + } +} diff --git a/src/test/fixtures/login.rs b/src/test/fixtures/login.rs index cbcbdd4..e308289 100644 --- a/src/test/fixtures/login.rs +++ b/src/test/fixtures/login.rs @@ -1,12 +1,9 @@ -use std::future::{self, Ready}; - use faker_rand::en_us::internet; use uuid::Uuid; use crate::{ app::App, clock::RequestedAt, - event::Event, login::{self, Login, Password}, name::Name, }; @@ -48,16 +45,3 @@ fn propose_name() -> Name { pub fn propose_password() -> Password { Uuid::new_v4().to_string().into() } - -pub fn events(event: Event) -> Ready<Option<login::Event>> { - future::ready(match event { - Event::Login(event) => Some(event), - _ => None, - }) -} - -pub fn created(event: login::Event) -> Ready<Option<login::event::Created>> { - future::ready(match event { - login::Event::Created(event) => Some(event), - }) -} diff --git a/src/test/fixtures/message.rs b/src/test/fixtures/message.rs index 8cb50c1..d3b4719 100644 --- a/src/test/fixtures/message.rs +++ b/src/test/fixtures/message.rs @@ -1,14 +1,11 @@ -use std::future; - use faker_rand::lorem::Paragraphs; use crate::{ app::App, channel::Channel, clock::RequestedAt, - event::Event, login::Login, - message::{self, event, Body, Message}, + message::{self, Body, Message}, }; pub async fn send(app: &App, channel: &Channel, sender: &Login, sent_at: &RequestedAt) -> Message { @@ -24,27 +21,6 @@ pub fn propose() -> Body { rand::random::<Paragraphs>().to_string().into() } -pub fn events(event: Event) -> future::Ready<Option<message::Event>> { - future::ready(match event { - Event::Message(event) => Some(event), - _ => None, - }) -} - -pub fn sent(event: message::Event) -> future::Ready<Option<event::Sent>> { - future::ready(match event { - message::Event::Sent(event) => Some(event), - message::Event::Deleted(_) => None, - }) -} - -pub fn deleted(event: message::Event) -> future::Ready<Option<event::Deleted>> { - future::ready(match event { - message::Event::Deleted(event) => Some(event), - message::Event::Sent(_) => None, - }) -} - pub fn fictitious() -> message::Id { message::Id::generate() } diff --git a/src/test/fixtures/mod.rs b/src/test/fixtures/mod.rs index cf30e02..2b7b6af 100644 --- a/src/test/fixtures/mod.rs +++ b/src/test/fixtures/mod.rs @@ -4,6 +4,7 @@ use crate::{app::App, clock::RequestedAt, db}; pub mod channel; pub mod cookie; +pub mod event; pub mod future; pub mod identity; pub mod invite; |
