forked from Ruderverein-Donau-Linz/rowt
		
	Merge pull request 'add-unit-test' (#879) from add-unit-test into staging
Reviewed-on: Ruderverein-Donau-Linz/rowt#879
This commit is contained in:
		@@ -53,6 +53,7 @@ INSERT INTO "planned_event" (name, planned_amount_cox, trip_details_id) VALUES('
 | 
			
		||||
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_details" (planned_starting_time, max_people, day, notes) VALUES('10:00', 2, date('now'), 'same trip_details as id=1');
 | 
			
		||||
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 ('Lange Ausfahrt', 'Lange Ausfahrt!', 'Das ist eine lange Ausfahrt! Willst du wirklich teilnehmen?', '💪');
 | 
			
		||||
INSERT INTO "trip_type" (name, desc, question, icon) VALUES ('Wanderfahrt', 'Wanderfahrt!', 'Kein normales Event. Das ist eine Wanderfahrt! Bitte überprüfe ob du alle Anforderungen erfüllst. Willst du wirklich teilnehmen?', '⛱');
 | 
			
		||||
 
 | 
			
		||||
@@ -91,33 +91,31 @@ impl Trip {
 | 
			
		||||
            trip_details.planned_starting_time,
 | 
			
		||||
        )
 | 
			
		||||
        .await;
 | 
			
		||||
        if same_starting_datetime.len() > 1 {
 | 
			
		||||
            for notify in same_starting_datetime {
 | 
			
		||||
                // don't notify oneself
 | 
			
		||||
                if notify.id == trip_details.id {
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
        for notify in same_starting_datetime {
 | 
			
		||||
            // don't notify oneself
 | 
			
		||||
            if notify.id == trip_details.id {
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
                // don't notify people who have cancelled their trip
 | 
			
		||||
                if notify.cancelled() {
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
            // don't notify people who have cancelled their trip
 | 
			
		||||
            if notify.cancelled() {
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
                if let Some(trip) = Trip::find_by_trip_details(db, notify.id).await {
 | 
			
		||||
                    let user_earlier_trip = User::find_by_id(db, trip.cox_id as i32).await.unwrap();
 | 
			
		||||
                    Notification::create(
 | 
			
		||||
                        db,
 | 
			
		||||
                        &user_earlier_trip,
 | 
			
		||||
                        &format!(
 | 
			
		||||
                            "{} hat eine Ausfahrt zur selben Zeit ({} um {}) wie du erstellt",
 | 
			
		||||
                            user.name, trip.day, trip.planned_starting_time
 | 
			
		||||
                        ),
 | 
			
		||||
                        "Neue Ausfahrt zur selben Zeit",
 | 
			
		||||
                        None,
 | 
			
		||||
                        None,
 | 
			
		||||
                    )
 | 
			
		||||
                    .await;
 | 
			
		||||
                }
 | 
			
		||||
            if let Some(trip) = Trip::find_by_trip_details(db, notify.id).await {
 | 
			
		||||
                let user_earlier_trip = User::find_by_id(db, trip.cox_id as i32).await.unwrap();
 | 
			
		||||
                Notification::create(
 | 
			
		||||
                    db,
 | 
			
		||||
                    &user_earlier_trip,
 | 
			
		||||
                    &format!(
 | 
			
		||||
                        "{} hat eine Ausfahrt zur selben Zeit ({} um {}) wie du erstellt",
 | 
			
		||||
                        user.name, trip.day, trip.planned_starting_time
 | 
			
		||||
                    ),
 | 
			
		||||
                    "Neue Ausfahrt zur selben Zeit",
 | 
			
		||||
                    None,
 | 
			
		||||
                    None,
 | 
			
		||||
                )
 | 
			
		||||
                .await;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -486,6 +484,7 @@ mod test {
 | 
			
		||||
    use crate::{
 | 
			
		||||
        model::{
 | 
			
		||||
            event::Event,
 | 
			
		||||
            notification::Notification,
 | 
			
		||||
            trip::{self, TripDeleteError},
 | 
			
		||||
            tripdetails::TripDetails,
 | 
			
		||||
            user::{SteeringUser, User},
 | 
			
		||||
@@ -517,6 +516,34 @@ mod test {
 | 
			
		||||
        assert!(Trip::find_by_id(&pool, 1).await.is_some());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[sqlx::test]
 | 
			
		||||
    fn test_notification_cox_if_same_datetime() {
 | 
			
		||||
        let pool = testdb!();
 | 
			
		||||
        let cox = SteeringUser::new(
 | 
			
		||||
            &pool,
 | 
			
		||||
            User::find_by_name(&pool, "cox".into()).await.unwrap(),
 | 
			
		||||
        )
 | 
			
		||||
        .await
 | 
			
		||||
        .unwrap();
 | 
			
		||||
        let trip_details = TripDetails::find_by_id(&pool, 1).await.unwrap();
 | 
			
		||||
        Trip::new_own(&pool, &cox, trip_details).await;
 | 
			
		||||
 | 
			
		||||
        let cox2 = SteeringUser::new(
 | 
			
		||||
            &pool,
 | 
			
		||||
            User::find_by_name(&pool, "cox2".into()).await.unwrap(),
 | 
			
		||||
        )
 | 
			
		||||
        .await
 | 
			
		||||
        .unwrap();
 | 
			
		||||
        let trip_details = TripDetails::find_by_id(&pool, 3).await.unwrap();
 | 
			
		||||
        Trip::new_own(&pool, &cox2, trip_details).await;
 | 
			
		||||
 | 
			
		||||
        let last_notification = &Notification::for_user(&pool, &cox).await[0];
 | 
			
		||||
 | 
			
		||||
        assert!(last_notification
 | 
			
		||||
            .message
 | 
			
		||||
            .starts_with("cox2 hat eine Ausfahrt zur selben Zeit"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[sqlx::test]
 | 
			
		||||
    fn test_get_day_cox_trip() {
 | 
			
		||||
        let pool = testdb!();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user