summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorKit La Touche <kit@transneptune.net>2024-09-28 21:55:50 -0400
committerKit La Touche <kit@transneptune.net>2024-09-28 21:55:50 -0400
commit897eef0306917baf3662e691b29f182d35805296 (patch)
tree024e2a3fa13ac96e0b4339a6d62ae533efe7db07 /src/test
parentc524b333befc8cc97aa49f73b3ed28bc3b82420c (diff)
parent4d0bb0709b168a24ab6a8dbc86da45d7503596ee (diff)
Merge branch 'main' into feature-frontend
Diffstat (limited to 'src/test')
-rw-r--r--src/test/fixtures/channel.rs6
-rw-r--r--src/test/fixtures/filter.rs15
-rw-r--r--src/test/fixtures/identity.rs15
-rw-r--r--src/test/fixtures/login.rs9
-rw-r--r--src/test/fixtures/message.rs4
-rw-r--r--src/test/fixtures/mod.rs3
6 files changed, 36 insertions, 16 deletions
diff --git a/src/test/fixtures/channel.rs b/src/test/fixtures/channel.rs
index 0558395..8744470 100644
--- a/src/test/fixtures/channel.rs
+++ b/src/test/fixtures/channel.rs
@@ -4,12 +4,12 @@ use faker_rand::{
};
use rand;
-use crate::{app::App, repo::channel::Channel};
+use crate::{app::App, clock::RequestedAt, repo::channel::Channel};
-pub async fn create(app: &App) -> Channel {
+pub async fn create(app: &App, created_at: &RequestedAt) -> Channel {
let name = propose();
app.channels()
- .create(&name)
+ .create(&name, created_at)
.await
.expect("should always succeed if the channel is actually new")
}
diff --git a/src/test/fixtures/filter.rs b/src/test/fixtures/filter.rs
new file mode 100644
index 0000000..fbebced
--- /dev/null
+++ b/src/test/fixtures/filter.rs
@@ -0,0 +1,15 @@
+use futures::future;
+
+use crate::events::types;
+
+pub fn messages() -> impl FnMut(&types::ResumableEvent) -> future::Ready<bool> {
+ |types::ResumableEvent(_, event)| {
+ future::ready(matches!(event.data, types::ChannelEventData::Message(_)))
+ }
+}
+
+pub fn created() -> impl FnMut(&types::ResumableEvent) -> future::Ready<bool> {
+ |types::ResumableEvent(_, event)| {
+ future::ready(matches!(event.data, types::ChannelEventData::Created(_)))
+ }
+}
diff --git a/src/test/fixtures/identity.rs b/src/test/fixtures/identity.rs
index 16463aa..69b5f4c 100644
--- a/src/test/fixtures/identity.rs
+++ b/src/test/fixtures/identity.rs
@@ -1,12 +1,17 @@
use uuid::Uuid;
-use crate::{app::App, clock::RequestedAt, login::extract::IdentityToken};
+use crate::{
+ app::App,
+ clock::RequestedAt,
+ login::extract::{IdentitySecret, IdentityToken},
+ password::Password,
+};
pub fn not_logged_in() -> IdentityToken {
IdentityToken::new()
}
-pub async fn logged_in(app: &App, login: &(String, String), now: &RequestedAt) -> IdentityToken {
+pub async fn logged_in(app: &App, login: &(String, Password), now: &RequestedAt) -> IdentityToken {
let (name, password) = login;
let token = app
.logins()
@@ -14,14 +19,14 @@ pub async fn logged_in(app: &App, login: &(String, String), now: &RequestedAt) -
.await
.expect("should succeed given known-valid credentials");
- IdentityToken::new().set(&token)
+ IdentityToken::new().set(token)
}
-pub fn secret(identity: &IdentityToken) -> &str {
+pub fn secret(identity: &IdentityToken) -> IdentitySecret {
identity.secret().expect("identity contained a secret")
}
pub fn fictitious() -> IdentityToken {
let token = Uuid::new_v4().to_string();
- IdentityToken::new().set(&token)
+ IdentityToken::new().set(token)
}
diff --git a/src/test/fixtures/login.rs b/src/test/fixtures/login.rs
index f1e4b15..d6a321b 100644
--- a/src/test/fixtures/login.rs
+++ b/src/test/fixtures/login.rs
@@ -3,10 +3,11 @@ use uuid::Uuid;
use crate::{
app::App,
+ password::Password,
repo::login::{self, Login},
};
-pub async fn create_with_password(app: &App) -> (String, String) {
+pub async fn create_with_password(app: &App) -> (String, Password) {
let (name, password) = propose();
app.logins()
.create(&name, &password)
@@ -31,7 +32,7 @@ pub fn fictitious() -> Login {
}
}
-pub fn propose() -> (String, String) {
+pub fn propose() -> (String, Password) {
(name(), propose_password())
}
@@ -39,6 +40,6 @@ fn name() -> String {
rand::random::<internet::Username>().to_string()
}
-pub fn propose_password() -> String {
- Uuid::new_v4().to_string()
+pub fn propose_password() -> Password {
+ Uuid::new_v4().to_string().into()
}
diff --git a/src/test/fixtures/message.rs b/src/test/fixtures/message.rs
index 33feeae..bfca8cd 100644
--- a/src/test/fixtures/message.rs
+++ b/src/test/fixtures/message.rs
@@ -3,7 +3,7 @@ use faker_rand::lorem::Paragraphs;
use crate::{
app::App,
clock::RequestedAt,
- events::repo::broadcast,
+ events::types,
repo::{channel::Channel, login::Login},
};
@@ -12,7 +12,7 @@ pub async fn send(
login: &Login,
channel: &Channel,
sent_at: &RequestedAt,
-) -> broadcast::Message {
+) -> types::ChannelEvent {
let body = propose();
app.events()
diff --git a/src/test/fixtures/mod.rs b/src/test/fixtures/mod.rs
index a42dba5..d1dd0c3 100644
--- a/src/test/fixtures/mod.rs
+++ b/src/test/fixtures/mod.rs
@@ -3,6 +3,7 @@ use chrono::{TimeDelta, Utc};
use crate::{app::App, clock::RequestedAt, repo::pool};
pub mod channel;
+pub mod filter;
pub mod future;
pub mod identity;
pub mod login;
@@ -13,8 +14,6 @@ pub async fn scratch_app() -> App {
.await
.expect("setting up in-memory sqlite database");
App::from(pool)
- .await
- .expect("creating an app from a fresh, in-memory database")
}
pub fn now() -> RequestedAt {