You've already forked authentication-service
mirror of
https://github.com/matrix-org/matrix-authentication-service.git
synced 2025-07-31 09:24:31 +03:00
Test HTTP handlers
This commit is contained in:
@ -28,3 +28,25 @@ pub async fn get(Extension(pool): Extension<PgPool>) -> Result<impl IntoResponse
|
||||
|
||||
Ok("ok")
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use hyper::{Body, Request, StatusCode};
|
||||
use tower::ServiceExt;
|
||||
|
||||
use super::*;
|
||||
|
||||
#[sqlx::test(migrator = "mas_storage::MIGRATOR")]
|
||||
async fn test_get_health(pool: PgPool) -> Result<(), anyhow::Error> {
|
||||
let app = crate::test_router(&pool).await?;
|
||||
let request = Request::builder().uri("/health").body(Body::empty())?;
|
||||
|
||||
let response = app.oneshot(request).await?;
|
||||
|
||||
assert_eq!(response.status(), StatusCode::OK);
|
||||
let body = hyper::body::to_bytes(response.into_body()).await?;
|
||||
assert_eq!(body, "ok");
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
@ -242,3 +242,45 @@ where
|
||||
.layer(Extension(matrix_config.clone()))
|
||||
.layer(Extension(policy_factory.clone()))
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
async fn test_router(pool: &PgPool) -> Result<Router, anyhow::Error> {
|
||||
use mas_config::TemplatesConfig;
|
||||
use mas_email::MailTransport;
|
||||
|
||||
let templates_config = TemplatesConfig::default();
|
||||
let templates = Templates::load_from_config(&templates_config).await?;
|
||||
|
||||
let key_store = {
|
||||
let mut k = StaticKeystore::new();
|
||||
k.add_test_rsa_key()?;
|
||||
k.add_test_ecdsa_key()?;
|
||||
Arc::new(k)
|
||||
};
|
||||
|
||||
let encrypter = Encrypter::new(&[0x42; 32]);
|
||||
|
||||
let transport = MailTransport::default();
|
||||
let mailbox = "server@example.com".parse()?;
|
||||
let mailer = Mailer::new(&templates, &transport, &mailbox, &mailbox);
|
||||
|
||||
let url_builder = UrlBuilder::new("https://example.com/".parse()?);
|
||||
|
||||
let matrix_config = MatrixConfig {
|
||||
homeserver: "example.com".to_string(),
|
||||
};
|
||||
|
||||
let policy_factory = PolicyFactory::load_default(serde_json::json!({})).await?;
|
||||
let policy_factory = Arc::new(policy_factory);
|
||||
|
||||
Ok(router(
|
||||
pool,
|
||||
&templates,
|
||||
&key_store,
|
||||
&encrypter,
|
||||
&mailer,
|
||||
&url_builder,
|
||||
&matrix_config,
|
||||
&policy_factory,
|
||||
))
|
||||
}
|
||||
|
Reference in New Issue
Block a user