From f2bea92272370ee16c191b173821d214742b5e13 Mon Sep 17 00:00:00 2001
From: Philippe Loctaux
Date: Mon, 6 Mar 2023 00:34:45 +0100
Subject: [PATCH] testing setup route
---
crates/ezidam/src/routes/setup.rs | 30 +++++++++++++++++++++++++++++-
crates/ezidam/src/tests.rs | 2 +-
2 files changed, 30 insertions(+), 2 deletions(-)
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 {