You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by "zjncs (via GitHub)" <gi...@apache.org> on 2026/10/08 18:14:04 UTC

[PR] test(acl): pin the remote policy projection null-safety [rocketmq-dashboard]

zjncs opened a new pull request, #5739:
URL: https://github.com/apache/rocketmq-dashboard/pull/5739

   ### What
   
   `RemoteAclPolicyVO` — the REST representation of an Apache ACL 2.0 policy — had no test. This adds `RemoteAclPolicyVOTest` with 7 tests pinning the projection's whole job: **a sparse upstream answer never surfaces null lists or null rows to the API consumer**.
   
   ### What is pinned
   
   - a fully populated policy maps through every level (subject, policy type, entry resource/actions/sourceIps/decision);
   - a null `policies` list projects to empty;
   - null policy rows are filtered;
   - a null `entries` list projects to empty and null entry rows are filtered;
   - **null strings inside the typed `actions` and `sourceIps` lists are filtered** — the wire answer carries null slots, the REST answer must not;
   - a null `actions` or `sourceIps` list projects to an empty list, never null.
   
   ### Verification
   
   - New tests on unmodified code: **7/7 green**, checkstyle clean (`mvn test -Dtest=RemoteAclPolicyVOTest`).
   - Discriminating mutations on `RemoteAclPolicyVO`, build result verified red each time:
     1. the policy-level null-list guard dropped — red (NPE);
     2. the null-row filter dropped — red (null reaches the mapper);
     3. the string-list null filtering dropped — red (null actions surface to the REST answer).
   - Restored: 7/7 green. Test-only change; no product code touched.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org