Compare commits

..

2 Commits

Author SHA1 Message Date
bb2771b412 fix frontend tests
Some checks failed
CI/CD Pipeline / test (push) Failing after 13m58s
CI/CD Pipeline / deploy-staging (push) Has been skipped
CI/CD Pipeline / deploy-main (push) Has been skipped
2024-09-02 13:52:35 +03:00
2dc145e697 fix backend tests 2024-09-02 13:35:12 +03:00
7 changed files with 30 additions and 26 deletions

View File

@ -18,7 +18,7 @@ test("cox can create and delete trip", async ({ page }) => {
await expect(page.locator("body")).toContainText("18:00 Uhr (cox) Details"); await expect(page.locator("body")).toContainText("18:00 Uhr (cox) Details");
await page.goto("/planned"); await page.goto("/planned");
await page.getByRole("link", { name: "Details" }).click(); await page.getByRole('link', { name: 'Details' }).nth(1).click();
await page.getByRole("link", { name: "Termin löschen" }).click(); await page.getByRole("link", { name: "Termin löschen" }).click();
await expect(page.locator("body")).toContainText("Erfolgreich gelöscht!"); await expect(page.locator("body")).toContainText("Erfolgreich gelöscht!");
}); });
@ -52,7 +52,7 @@ test.describe("cox can edit trips", () => {
test("edit remarks", async () => { test("edit remarks", async () => {
await sharedPage.goto("/planned"); await sharedPage.goto("/planned");
await sharedPage.getByRole("link", { name: "Details" }).click(); await page.getByRole('link', { name: 'Details' }).nth(1).click();
await sharedPage.locator("#sidebar #notes").click(); await sharedPage.locator("#sidebar #notes").click();
await sharedPage.locator("#sidebar #notes").fill("Meine Anmerkung"); await sharedPage.locator("#sidebar #notes").fill("Meine Anmerkung");
await sharedPage.getByRole("button", { name: "Speichern" }).click(); await sharedPage.getByRole("button", { name: "Speichern" }).click();
@ -137,7 +137,7 @@ test.describe("cox can edit trips", () => {
test.afterAll(async () => { test.afterAll(async () => {
await sharedPage.goto("/planned"); await sharedPage.goto("/planned");
await sharedPage.getByRole("link", { name: "Details" }).click(); await sharedPage.getByRole('link', { name: 'Details' }).nth(1).click();
await sharedPage.getByRole("link", { name: "Termin löschen" }).click(); await sharedPage.getByRole("link", { name: "Termin löschen" }).click();
await sharedPage.close(); await sharedPage.close();
}); });

View File

@ -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,6);
INSERT INTO "user_role" (user_id, role_id) VALUES(10,9); 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 "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" (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?', '🏅'); INSERT INTO "trip_type" (name, desc, question, icon) VALUES ('Regatta', 'Regatta!', 'Kein normales Event. Das ist eine Regatta! Willst du wirklich teilnehmen?', '🏅');

View File

@ -438,14 +438,14 @@ mod test {
use crate::{model::tripdetails::TripDetails, testdb}; use crate::{model::tripdetails::TripDetails, testdb};
use super::Event; use super::Event;
use chrono::NaiveDate; use chrono::Local;
use sqlx::SqlitePool; use sqlx::SqlitePool;
#[sqlx::test] #[sqlx::test]
fn test_get_day() { fn test_get_day() {
let pool = testdb!(); 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); assert_eq!(res.len(), 1);
} }
@ -455,9 +455,9 @@ mod test {
let trip_details = TripDetails::find_by_id(&pool, 1).await.unwrap(); 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); assert_eq!(res.len(), 2);
} }
@ -468,7 +468,7 @@ mod test {
planned_event.delete(&pool).await.unwrap(); 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); assert_eq!(res.len(), 0);
} }
@ -476,7 +476,8 @@ mod test {
fn test_ics() { fn test_ics() {
let pool = testdb!(); let pool = testdb!();
let today = Local::now().date_naive().format("%Y%m%d").to_string();
let actual = Event::get_ics_feed(&pool).await; 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);
} }
} }

View File

@ -203,6 +203,7 @@ mod test {
testdb, testdb,
}; };
use chrono::Local;
use sqlx::SqlitePool; use sqlx::SqlitePool;
#[sqlx::test] #[sqlx::test]
@ -213,17 +214,16 @@ mod test {
let add_tripdetails = TripDetailsToAdd { let add_tripdetails = TripDetailsToAdd {
planned_starting_time: "10:00", planned_starting_time: "10:00",
max_people: 4, max_people: 4,
day: "1970-02-01".into(), day: Local::now().date_naive().format("%Y-%m-%d").to_string(),
notes: None, notes: None,
trip_type: None, trip_type: None,
allow_guests: false, allow_guests: false,
always_show: false,
}; };
let tripdetails_id = TripDetails::create(&pool, add_tripdetails).await; let tripdetails_id = TripDetails::create(&pool, add_tripdetails).await;
let trip_details = TripDetails::find_by_id(&pool, tripdetails_id) let trip_details = TripDetails::find_by_id(&pool, tripdetails_id)
.await .await
.unwrap(); .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) let event = Event::find_by_trip_details(&pool, trip_details.id)
.await .await
.unwrap(); .unwrap();

View File

@ -82,7 +82,7 @@ impl Trip {
} }
// don't notify people who have cancelled their trip // don't notify people who have cancelled their trip
if notify.cancelled(db) { if notify.cancelled() {
continue; continue;
} }
@ -406,7 +406,7 @@ mod test {
testdb, testdb,
}; };
use chrono::NaiveDate; use chrono::Local;
use sqlx::SqlitePool; use sqlx::SqlitePool;
use super::Trip; use super::Trip;
@ -433,7 +433,8 @@ mod test {
fn test_get_day_cox_trip() { fn test_get_day_cox_trip() {
let pool = testdb!(); 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); assert_eq!(res.len(), 1);
} }
@ -489,7 +490,6 @@ mod test {
max_people: 10, max_people: 10,
notes: None, notes: None,
trip_type: None, trip_type: None,
always_show: false,
is_locked: false, is_locked: false,
}; };
@ -518,7 +518,6 @@ mod test {
max_people: 10, max_people: 10,
notes: None, notes: None,
trip_type: Some(1), trip_type: Some(1),
always_show: false,
is_locked: false, is_locked: false,
}; };
assert!(Trip::update_own(&pool, &update).await.is_ok()); assert!(Trip::update_own(&pool, &update).await.is_ok());
@ -547,7 +546,6 @@ mod test {
max_people: 10, max_people: 10,
notes: None, notes: None,
trip_type: None, trip_type: None,
always_show: false,
is_locked: false, is_locked: false,
}; };
assert!(Trip::update_own(&pool, &update).await.is_err()); assert!(Trip::update_own(&pool, &update).await.is_err());

View File

@ -94,7 +94,7 @@ WHERE day = ? AND planned_starting_time = ?
.await.unwrap() .await.unwrap()
} }
pub fn cancelled(&self, db: &SqlitePool) -> bool { pub fn cancelled(&self) -> bool {
self.max_people == 0 self.max_people == 0
} }
@ -106,7 +106,7 @@ WHERE day = ? AND planned_starting_time = ?
return; return;
} }
if self.cancelled(db) { if self.cancelled() {
// Cox cancelled event, thus it's probably bad weather. Don't bother with sending // Cox cancelled event, thus it's probably bad weather. Don't bother with sending
// notifications // notifications
return; return;

View File

@ -191,7 +191,7 @@ pub fn routes() -> Vec<Route> {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use chrono::NaiveDate; use chrono::{Local, NaiveDate};
use rocket::{ use rocket::{
http::{ContentType, Status}, http::{ContentType, Status},
local::asynchronous::Client, local::asynchronous::Client,
@ -252,7 +252,9 @@ mod test {
fn test_trip_update_succ() { fn test_trip_update_succ() {
let db = testdb!(); 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!(1, trip.trip.max_people);
assert_eq!( assert_eq!(
"trip_details for trip from cox", "trip_details for trip from cox",
@ -288,7 +290,8 @@ mod test {
"7:successAusfahrt erfolgreich aktualisiert." "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!(12, trip.trip.max_people);
assert_eq!("my-new-notes", &trip.trip.notes.clone().unwrap()); assert_eq!("my-new-notes", &trip.trip.notes.clone().unwrap());
} }
@ -328,7 +331,9 @@ mod test {
fn test_trip_update_wrong_cox() { fn test_trip_update_wrong_cox() {
let db = testdb!(); 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!(1, trip.trip.max_people);
assert_eq!( assert_eq!(
"trip_details for trip from cox", "trip_details for trip from cox",