Compare commits
2 Commits
6b88927880
...
bb2771b412
Author | SHA1 | Date | |
---|---|---|---|
bb2771b412 | |||
2dc145e697 |
@ -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();
|
||||||
});
|
});
|
||||||
|
@ -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?', '🏅');
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
|
@ -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());
|
||||||
|
@ -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;
|
||||||
|
@ -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",
|
||||||
|
Loading…
Reference in New Issue
Block a user