Aana123 opened a new pull request, #219:
URL: https://github.com/apache/fineract-consumer-facing/pull/219

   ## What and why
   
   Follow-up to #113. The core fix landed in 1028685 / 4ee32f0 (single 
`actionFingerprint(String, Object...)`); this addresses the remaining call-site 
gaps so step-up initiate and confirm can't drift apart.
   
   - `TransfersCommandServiceImpl`: `initiate()` and `confirm()` now compute 
the action fingerprint through one private helper, matching the 
Beneficiaries/Users pattern.
   - `BeneficiariesCommandServiceImpl`: removed the local 
`fingerprintPart(BigDecimal)`, which duplicated the normalization now in 
`StepUpTokenService`. A null transfer limit is still encoded as `""`, so 
fingerprints stay byte-identical and in-flight step-up tokens remain valid.
   - `TransfersCommandServiceImplTest`: added a round-trip test asserting the 
fingerprint issued on initiate is the one verified on confirm. Correction to my 
earlier comment on #113: the existing tests already pin the exact fingerprint 
arguments per path, so this mainly makes the invariant explicit rather than 
closing a coverage hole.
   
   No functional change to transfer or beneficiary flows.
   
   Closes #113
   
   ## Verification
   
   - `./gradlew test`: all tests pass, including the ArchUnit/Modulith 
architecture tests
   - `TransfersCommandServiceImplTest` (29 tests) and 
`BeneficiariesCommandServiceImplTest` (27 tests) pass
   - Verified the new round-trip test fails when `confirm()` passes its 
arguments in a different order
   - Rebuilt the BFF on the local Docker stack and manually exercised 
add-beneficiary and transfer, both with OTP step-up
   
   ## Screenshots
   
   Not applicable (backend-only change).
   
   ## AI assistance (optional)
   
   - Tool / model: Claude Code
   - Harness / workflow: Claude Code in the terminal for drafting the edits, 
guided by a written spec; I reviewed every change, ran the tests, and verified 
the behaviour locally
   
   ## Checklist
   
   - [x] I did not hand-edit generated files under 
`frontend/src/openapi-client/`.
   - [x] Backend code follows the feature and CQRS layout in AGENTS.md (no new 
classes; changes stay inside existing command-side services).
   - [x] I did not add entries to a lint or architecture baseline 
(suppressions, frozen violations) to get the build passing.
   - [x] User-facing strings use translation keys. (No user-facing strings 
changed.)
   - [x] I added or updated tests appropriate to this change, or explained why 
tests were not needed.
   - [x] UI workflow changes include suitable e2e coverage, including 
real-backend testing where relevant. (No UI changes.)
   - [x] Commits are signed.
   - [x] I followed the AI-assisted contributions guidance.
   - [x] If this adds a feature or changes what a consumer can see or do, I 
raised it on [email protected] first, or it is a bug fix, refactor or 
test change, where that does not apply. (Refactor and test change.)


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to