use rocket::{get, http::ContentType, routes, Route, State}; use rocket_dyn_templates::{context, Template}; use sqlx::SqlitePool; use crate::model::{planned_event::PlannedEvent, user::User}; #[get("/cal")] async fn cal(db: &State) -> (ContentType, String) { //TODO: add unit test once proper functionality is there (ContentType::Calendar, PlannedEvent::get_ics_feed(db).await) } pub fn routes() -> Vec { routes![cal] } #[cfg(test)] mod test { use rocket::{ http::{ContentType, Status}, local::asynchronous::Client, }; use sqlx::SqlitePool; use crate::testdb; #[sqlx::test] fn test_without_login() { let db = testdb!(); let rocket = rocket::build().manage(db.clone()); let rocket = crate::tera::config(rocket); let client = Client::tracked(rocket).await.unwrap(); let req = client.get("/"); let response = req.dispatch().await; assert_eq!(response.status(), Status::SeeOther); assert_eq!(response.headers().get("Location").next(), Some("/auth")); } }