aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs35
1 files changed, 28 insertions, 7 deletions
diff --git a/src/main.rs b/src/main.rs
index b3e45ed..7d75c61 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -22,17 +22,38 @@ mod models;
mod schema;
use controllers::{home_controller, login_controller, posts_controller, users_controller};
+fn build_rocket(pool: utils::Pool) -> rocket::Rocket {
+ rocket::ignite()
+ .manage(pool)
+ .mount("/", home_controller::routes())
+ .mount("/posts", posts_controller::routes())
+ .mount("/users", users_controller::routes())
+ .mount("/login", login_controller::routes())
+}
+
fn main() {
if let Ok(dburl) = dotenv::var("DATABASE_URL") {
- rocket::ignite()
- .manage(utils::init_db_pool(&dburl))
- .mount("/", home_controller::routes())
- .mount("/posts", posts_controller::routes())
- .mount("/users", users_controller::routes())
- .mount("/login", login_controller::routes())
- .launch();
+ let pool = utils::init_db_pool(&dburl);
+ build_rocket(pool).launch();
}
else {
eprintln!("Error: No database specified, make sure the DATABASE_URL env var is set.");
};
}
+
+#[cfg(test)]
+mod test {
+ mod test_helpers;
+
+ use super::build_rocket;
+ use rocket::local::Client;
+ use rocket::http::Status;
+
+ #[test]
+ fn get_landing_page() {
+ let pool = test_helpers::init_test_db_pool();
+ let client = Client::new(build_rocket(pool)).expect("Rocket not built!");
+ let response = client.get("/").dispatch();
+ assert_eq!(response.status(), Status::Ok);
+ }
+}