diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 35 |
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); + } +} |