ezidam: tests: openid configuration

This commit is contained in:
Philippe Loctaux 2023-03-12 14:19:03 +01:00
parent 2d0d6857ce
commit d7783a2002
3 changed files with 46 additions and 6 deletions

View file

@ -93,11 +93,7 @@ mod test {
assert_eq!(setup_page.status(), Status::Ok); assert_eq!(setup_page.status(), Status::Ok);
// Create account // Create account
let create_account = client let create_account = run_setup(&client);
.post(uri!("/setup"))
.header(ContentType::Form)
.body(r#"username=phil&password=password&url=https://example.com"#)
.dispatch();
assert_eq!(create_account.status(), Status::SeeOther); assert_eq!(create_account.status(), Status::SeeOther);
// Make request again, make sure its not OK // Make request again, make sure its not OK

View file

@ -23,3 +23,39 @@ async fn openid_configuration(mut db: Connection<Database>) -> Result<Json<Value
// HTTP response // HTTP response
Ok(Json(openid_configuration)) Ok(Json(openid_configuration))
} }
#[cfg(test)]
mod test {
use crate::tests::*;
use rocket::serde::json::Value;
#[test]
fn valid_openid_configuration() {
// Setup http server
let client = setup_rocket_testing();
// Run setup
run_setup(&client);
// Make request
let response = client
.get(uri!("/.well-known/openid-configuration"))
.dispatch();
assert_eq!(response.status(), Status::Ok);
// Make sure it is valid json
assert!(response.into_json::<Value>().is_some());
}
#[test]
fn invalid_openid_configuration() {
// Setup http server
let client = setup_rocket_testing();
// Make request
let response = client
.get(uri!("/.well-known/openid-configuration"))
.dispatch();
assert_ne!(response.status(), Status::Ok);
}
}

View file

@ -1,5 +1,5 @@
use crate::rocket_setup; use crate::rocket_setup;
use rocket::local::blocking::Client; use rocket::local::blocking::{Client, LocalResponse};
use rocket::{Build, Rocket}; use rocket::{Build, Rocket};
pub use rocket::http::{ContentType, Status}; pub use rocket::http::{ContentType, Status};
@ -26,3 +26,11 @@ fn rocket_with_memory_database() -> Rocket<Build> {
pub fn setup_rocket_testing() -> Client { pub fn setup_rocket_testing() -> Client {
Client::tracked(rocket_with_memory_database()).expect("valid rocket instance") Client::tracked(rocket_with_memory_database()).expect("valid rocket instance")
} }
pub fn run_setup(client: &Client) -> LocalResponse {
client
.post(uri!("/setup"))
.header(ContentType::Form)
.body(r#"username=phil&password=password&url=https://example.com"#)
.dispatch()
}