diff --git a/src/integration_tests/caldav/calendar.rs b/src/integration_tests/caldav/calendar.rs index 98479c9..0cc0b3d 100644 --- a/src/integration_tests/caldav/calendar.rs +++ b/src/integration_tests/caldav/calendar.rs @@ -58,7 +58,7 @@ async fn test_caldav_calendar( let app = app.await; let cal_store = cal_store.await; - let calendar_meta = CalendarMetadata { + let mut calendar_meta = CalendarMetadata { displayname: Some("Calendar".to_string()), description: Some("Description".to_string()), color: Some("#00FF00".to_string()), @@ -133,6 +133,46 @@ async fn test_caldav_calendar( insta::assert_snapshot!(body); }); + let proppatch_request: &str = r#" + + + + New Displayname + Test + + + + + + + + + "#; + let mut request = Request::builder() + .method("PROPPATCH") + .uri(&url) + .body(Body::from(proppatch_request)) + .unwrap(); + request + .headers_mut() + .typed_insert(Authorization::basic("user", "pass")); + let response = app.clone().oneshot(request).await.unwrap(); + assert_eq!(response.status(), StatusCode::MULTI_STATUS); + let body = response.extract_string().await; + insta::assert_snapshot!(body); + + calendar_meta.displayname = Some("New Displayname".to_string()); + calendar_meta.description = None; + + assert_eq!( + cal_store + .get_calendar(principal, cal_id, false) + .await + .unwrap() + .meta, + calendar_meta + ); + let mut request = Request::builder() .method("DELETE") .uri(&url) diff --git a/src/integration_tests/caldav/snapshots/rustical__integration_tests__caldav__calendar__caldav_calendar-5.snap b/src/integration_tests/caldav/snapshots/rustical__integration_tests__caldav__calendar__caldav_calendar-5.snap index ae58472..0281bd2 100644 --- a/src/integration_tests/caldav/snapshots/rustical__integration_tests__caldav__calendar__caldav_calendar-5.snap +++ b/src/integration_tests/caldav/snapshots/rustical__integration_tests__caldav__calendar__caldav_calendar-5.snap @@ -2,4 +2,27 @@ source: src/integration_tests/caldav/calendar.rs expression: body --- - + + + + /caldav/principal/user/calendar + + + + + + + HTTP/1.1 200 OK + + + + + HTTP/1.1 404 Not Found + + + + + HTTP/1.1 409 Conflict + + + diff --git a/src/integration_tests/caldav/snapshots/rustical__integration_tests__caldav__calendar__caldav_calendar-6.snap b/src/integration_tests/caldav/snapshots/rustical__integration_tests__caldav__calendar__caldav_calendar-6.snap new file mode 100644 index 0000000..ae58472 --- /dev/null +++ b/src/integration_tests/caldav/snapshots/rustical__integration_tests__caldav__calendar__caldav_calendar-6.snap @@ -0,0 +1,5 @@ +--- +source: src/integration_tests/caldav/calendar.rs +expression: body +--- +