diff --git a/crates/ezidam/src/routes/setup.rs b/crates/ezidam/src/routes/setup.rs index 588d1d2..9a77622 100644 --- a/crates/ezidam/src/routes/setup.rs +++ b/crates/ezidam/src/routes/setup.rs @@ -9,7 +9,7 @@ pub fn routes() -> Vec { #[get("/")] async fn setup_completed(_setup: CompletedSetup) -> Redirect { - Redirect::to(uri!(super::root::homepage)) + Redirect::to(uri!("/")) } #[get("/", rank = 2)] @@ -59,3 +59,31 @@ async fn create_first_account( Ok(Redirect::to(uri!("/"))) } + +#[cfg(test)] +mod test { + use crate::tests::*; + + #[test] + fn setup() { + // Setup http server + let client = setup_rocket_testing(); + + // Make request + let setup_page = client.get(uri!("/setup")).dispatch(); + assert_eq!(setup_page.status(), Status::Ok); + + // Create account + let create_account = client + .post(uri!("/setup")) + .header(ContentType::Form) + .body(r#"username=phil&password=password"#) + .dispatch(); + assert_ne!(create_account.status(), Status::UnprocessableEntity); + assert_ne!(create_account.status(), Status::InternalServerError); + + // Make request again, make sure its not OK + let setup_page_after_creation = client.get(uri!("/setup")).dispatch(); + assert_ne!(setup_page_after_creation.status(), Status::Ok); + } +} diff --git a/crates/ezidam/src/tests.rs b/crates/ezidam/src/tests.rs index 46a91f0..2563f99 100644 --- a/crates/ezidam/src/tests.rs +++ b/crates/ezidam/src/tests.rs @@ -2,7 +2,7 @@ use crate::rocket_setup; use rocket::local::blocking::Client; use rocket::{Build, Rocket}; -pub use rocket::http::Status; +pub use rocket::http::{ContentType, Status}; pub use rocket::uri; fn rocket_with_memory_database() -> Rocket {