From 2dc145e697f4234baa2ac97c62c6b96a15b95270 Mon Sep 17 00:00:00 2001 From: philipp Date: Mon, 2 Sep 2024 13:35:12 +0300 Subject: [PATCH] fix backend tests --- seeds.sql | 4 ++-- src/model/event.rs | 13 +++++++------ src/model/notification.rs | 6 +++--- src/model/trip.rs | 10 ++++------ src/model/tripdetails.rs | 4 ++-- src/tera/cox.rs | 13 +++++++++---- 6 files changed, 27 insertions(+), 23 deletions(-) diff --git a/seeds.sql b/seeds.sql index b413278..c88c422 100644 --- a/seeds.sql +++ b/seeds.sql @@ -45,10 +45,10 @@ INSERT INTO "user_role" (user_id, role_id) VALUES(10,5); INSERT INTO "user_role" (user_id, role_id) VALUES(10,6); INSERT INTO "user_role" (user_id, role_id) VALUES(10,9); -INSERT INTO "trip_details" (planned_starting_time, max_people, day, notes) VALUES('10:00', 2, '1970-01-01', 'trip_details for a planned event'); +INSERT INTO "trip_details" (planned_starting_time, max_people, day, notes) VALUES('10:00', 2, date('now'), 'trip_details for a planned event'); INSERT INTO "planned_event" (name, planned_amount_cox, trip_details_id) VALUES('test-planned-event', 2, 1); -INSERT INTO "trip_details" (planned_starting_time, max_people, day, notes) VALUES('11:00', 1, '1970-01-02', 'trip_details for trip from cox'); +INSERT INTO "trip_details" (planned_starting_time, max_people, day, notes) VALUES('11:00', 1, date('now', '+1 day'), 'trip_details for trip from cox'); INSERT INTO "trip" (cox_id, trip_details_id) VALUES(4, 2); INSERT INTO "trip_type" (name, desc, question, icon) VALUES ('Regatta', 'Regatta!', 'Kein normales Event. Das ist eine Regatta! Willst du wirklich teilnehmen?', '🏅'); diff --git a/src/model/event.rs b/src/model/event.rs index 49736cb..b62811b 100644 --- a/src/model/event.rs +++ b/src/model/event.rs @@ -438,14 +438,14 @@ mod test { use crate::{model::tripdetails::TripDetails, testdb}; use super::Event; - use chrono::NaiveDate; + use chrono::Local; use sqlx::SqlitePool; #[sqlx::test] fn test_get_day() { let pool = testdb!(); - let res = Event::get_for_day(&pool, NaiveDate::from_ymd_opt(1970, 1, 1).unwrap()).await; + let res = Event::get_for_day(&pool, Local::now().date_naive()).await; assert_eq!(res.len(), 1); } @@ -455,9 +455,9 @@ mod test { let trip_details = TripDetails::find_by_id(&pool, 1).await.unwrap(); - Event::create(&pool, "new-event".into(), 2, &trip_details).await; + Event::create(&pool, "new-event".into(), 2, false, &trip_details).await; - let res = Event::get_for_day(&pool, NaiveDate::from_ymd_opt(1970, 1, 1).unwrap()).await; + let res = Event::get_for_day(&pool, Local::now().date_naive()).await; assert_eq!(res.len(), 2); } @@ -468,7 +468,7 @@ mod test { planned_event.delete(&pool).await.unwrap(); - let res = Event::get_for_day(&pool, NaiveDate::from_ymd_opt(1970, 1, 1).unwrap()).await; + let res = Event::get_for_day(&pool, Local::now().date_naive()).await; assert_eq!(res.len(), 0); } @@ -476,7 +476,8 @@ mod test { fn test_ics() { let pool = testdb!(); + let today = Local::now().date_naive().format("%Y%m%d").to_string(); let actual = Event::get_ics_feed(&pool).await; - assert_eq!("BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:ics-rs\r\nBEGIN:VEVENT\r\nUID:1@rudernlinz.at\r\nDTSTAMP:19900101T180000\r\nDTSTART:19700101T100000\r\nSUMMARY:test-planned-event \r\nEND:VEVENT\r\nEND:VCALENDAR\r\n", actual); + assert_eq!(format!("BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:ics-rs\r\nBEGIN:VEVENT\r\nUID:1@rudernlinz.at\r\nDTSTAMP:19900101T180000\r\nDTSTART:{today}T100000\r\nSUMMARY:test-planned-event \r\nEND:VEVENT\r\nEND:VCALENDAR\r\n"), actual); } } diff --git a/src/model/notification.rs b/src/model/notification.rs index 74b0f48..d27e894 100644 --- a/src/model/notification.rs +++ b/src/model/notification.rs @@ -203,6 +203,7 @@ mod test { testdb, }; + use chrono::Local; use sqlx::SqlitePool; #[sqlx::test] @@ -213,17 +214,16 @@ mod test { let add_tripdetails = TripDetailsToAdd { planned_starting_time: "10:00", max_people: 4, - day: "1970-02-01".into(), + day: Local::now().date_naive().format("%Y-%m-%d").to_string(), notes: None, trip_type: None, allow_guests: false, - always_show: false, }; let tripdetails_id = TripDetails::create(&pool, add_tripdetails).await; let trip_details = TripDetails::find_by_id(&pool, tripdetails_id) .await .unwrap(); - Event::create(&pool, "new-event".into(), 2, &trip_details).await; + Event::create(&pool, "new-event".into(), 2, false, &trip_details).await; let event = Event::find_by_trip_details(&pool, trip_details.id) .await .unwrap(); diff --git a/src/model/trip.rs b/src/model/trip.rs index 9d21649..d9765f8 100644 --- a/src/model/trip.rs +++ b/src/model/trip.rs @@ -82,7 +82,7 @@ impl Trip { } // don't notify people who have cancelled their trip - if notify.cancelled(db) { + if notify.cancelled() { continue; } @@ -406,7 +406,7 @@ mod test { testdb, }; - use chrono::NaiveDate; + use chrono::Local; use sqlx::SqlitePool; use super::Trip; @@ -433,7 +433,8 @@ mod test { fn test_get_day_cox_trip() { let pool = testdb!(); - let res = Trip::get_for_day(&pool, NaiveDate::from_ymd_opt(1970, 1, 2).unwrap()).await; + let tomorrow = Local::now().date_naive() + chrono::Duration::days(1); + let res = Trip::get_for_day(&pool, tomorrow).await; assert_eq!(res.len(), 1); } @@ -489,7 +490,6 @@ mod test { max_people: 10, notes: None, trip_type: None, - always_show: false, is_locked: false, }; @@ -518,7 +518,6 @@ mod test { max_people: 10, notes: None, trip_type: Some(1), - always_show: false, is_locked: false, }; assert!(Trip::update_own(&pool, &update).await.is_ok()); @@ -547,7 +546,6 @@ mod test { max_people: 10, notes: None, trip_type: None, - always_show: false, is_locked: false, }; assert!(Trip::update_own(&pool, &update).await.is_err()); diff --git a/src/model/tripdetails.rs b/src/model/tripdetails.rs index 8cedb2d..1dd59a5 100644 --- a/src/model/tripdetails.rs +++ b/src/model/tripdetails.rs @@ -94,7 +94,7 @@ WHERE day = ? AND planned_starting_time = ? .await.unwrap() } - pub fn cancelled(&self, db: &SqlitePool) -> bool { + pub fn cancelled(&self) -> bool { self.max_people == 0 } @@ -106,7 +106,7 @@ WHERE day = ? AND planned_starting_time = ? return; } - if self.cancelled(db) { + if self.cancelled() { // Cox cancelled event, thus it's probably bad weather. Don't bother with sending // notifications return; diff --git a/src/tera/cox.rs b/src/tera/cox.rs index 0ec685d..3166fc6 100644 --- a/src/tera/cox.rs +++ b/src/tera/cox.rs @@ -191,7 +191,7 @@ pub fn routes() -> Vec { #[cfg(test)] mod test { - use chrono::NaiveDate; + use chrono::{Local, NaiveDate}; use rocket::{ http::{ContentType, Status}, local::asynchronous::Client, @@ -252,7 +252,9 @@ mod test { fn test_trip_update_succ() { let db = testdb!(); - let trip = &Trip::get_for_day(&db, NaiveDate::from_ymd_opt(1970, 01, 02).unwrap()).await[0]; + let tomorrow = Local::now().date_naive() + chrono::Duration::days(1); + println!("{tomorrow}"); + let trip = &Trip::get_for_day(&db, tomorrow).await[0]; assert_eq!(1, trip.trip.max_people); assert_eq!( "trip_details for trip from cox", @@ -288,7 +290,8 @@ mod test { "7:successAusfahrt erfolgreich aktualisiert." ); - let trip = &Trip::get_for_day(&db, NaiveDate::from_ymd_opt(1970, 01, 02).unwrap()).await[0]; + let tomorrow = Local::now().date_naive() + chrono::Duration::days(1); + let trip = &Trip::get_for_day(&db, tomorrow).await[0]; assert_eq!(12, trip.trip.max_people); assert_eq!("my-new-notes", &trip.trip.notes.clone().unwrap()); } @@ -328,7 +331,9 @@ mod test { fn test_trip_update_wrong_cox() { let db = testdb!(); - let trip = &Trip::get_for_day(&db, NaiveDate::from_ymd_opt(1970, 01, 02).unwrap()).await[0]; + let tomorrow = Local::now().date_naive() + chrono::Duration::days(1); + + let trip = &Trip::get_for_day(&db, tomorrow).await[0]; assert_eq!(1, trip.trip.max_people); assert_eq!( "trip_details for trip from cox",