summaryrefslogtreecommitdiff
path: root/src/test/fixtures
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-10-24 22:37:22 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-10-24 22:37:22 -0400
commit0bb17bd01640492db2685e67bacac12dd54a9f59 (patch)
tree5c8425b8e6a962e609f82a7b3f2498524d8d6c6f /src/test/fixtures
parentd97f8ac1858fbd46b77b541a612cc37b07fc0b5d (diff)
Tests for channel, invite, setup, and message deletion events.
This also found a bug! No live event was being emitted during invite accept. The only way to find out about invites was to reconnect.
Diffstat (limited to 'src/test/fixtures')
-rw-r--r--src/test/fixtures/channel.rs7
-rw-r--r--src/test/fixtures/event.rs8
-rw-r--r--src/test/fixtures/login.rs16
-rw-r--r--src/test/fixtures/message.rs16
-rw-r--r--src/test/fixtures/mod.rs1
5 files changed, 38 insertions, 10 deletions
diff --git a/src/test/fixtures/channel.rs b/src/test/fixtures/channel.rs
index 8cb38ae..1fd8d23 100644
--- a/src/test/fixtures/channel.rs
+++ b/src/test/fixtures/channel.rs
@@ -45,6 +45,13 @@ pub fn created(event: channel::Event) -> future::Ready<Option<channel::event::Cr
})
}
+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
deleted file mode 100644
index fa4fbc0..0000000
--- a/src/test/fixtures/event.rs
+++ /dev/null
@@ -1,8 +0,0 @@
-use crate::message::{Event, Message};
-
-pub fn message_sent(event: &Event, message: &Message) -> bool {
- matches!(
- &event,
- Event::Sent(event) if message == &event.into()
- )
-}
diff --git a/src/test/fixtures/login.rs b/src/test/fixtures/login.rs
index e308289..cbcbdd4 100644
--- a/src/test/fixtures/login.rs
+++ b/src/test/fixtures/login.rs
@@ -1,9 +1,12 @@
+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,
};
@@ -45,3 +48,16 @@ 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 3aebdd9..8cb50c1 100644
--- a/src/test/fixtures/message.rs
+++ b/src/test/fixtures/message.rs
@@ -8,7 +8,7 @@ use crate::{
clock::RequestedAt,
event::Event,
login::Login,
- message::{self, Body, Message},
+ message::{self, event, Body, Message},
};
pub async fn send(app: &App, channel: &Channel, sender: &Login, sent_at: &RequestedAt) -> Message {
@@ -31,6 +31,20 @@ pub fn events(event: Event) -> future::Ready<Option<message::Event>> {
})
}
+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 2b7b6af..cf30e02 100644
--- a/src/test/fixtures/mod.rs
+++ b/src/test/fixtures/mod.rs
@@ -4,7 +4,6 @@ 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;