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
+---
+