From e166117c607a43c36a99062e4c677159dd200d94 Mon Sep 17 00:00:00 2001 From: Hare Date: Wed, 4 Nov 2026 11:28:44 +0900 Subject: [PATCH] Exercise permission catalog and resolution management DTO roundtrips --- crates/server-api/src/feature_permissions.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/crates/server-api/src/feature_permissions.rs b/crates/server-api/src/feature_permissions.rs index 48fbb8df4..41105e24d 100644 --- a/crates/server-api/src/feature_permissions.rs +++ b/crates/server-api/src/feature_permissions.rs @@ -78,6 +78,11 @@ mod tests { "../../feature-permissions/tests/fixtures/catalog.json" )) .unwrap(); + let catalog: PermissionCatalogResponse = serde_json::from_slice( + &serde_json::to_vec(&PermissionCatalogResponse(catalog)).unwrap(), + ) + .unwrap(); + let catalog = catalog.0; let mut host = PermissionHost::new(catalog.workspace.clone()); for namespace in catalog.namespaces { let owner = host.register_feature(namespace.feature).unwrap(); @@ -92,8 +97,12 @@ mod tests { let request: PermissionValidationRequest = serde_json::from_slice(&serde_json::to_vec(&request).unwrap()).unwrap(); let result = host.resolve(Some(&request.0.assignment)); - let response: PermissionResolution = - serde_json::from_slice(&serde_json::to_vec(result.projection()).unwrap()).unwrap(); + let response: PermissionResolutionResponse = serde_json::from_slice( + &serde_json::to_vec(&PermissionResolutionResponse(result.projection().clone())) + .unwrap(), + ) + .unwrap(); + let response = response.0; assert!( response .allowed