DeathGun44 opened a new pull request, #6050: URL: https://github.com/apache/fineract/pull/6050
## Description This PR transitions **34 test classes** (encompassing approximately **107 test methods**) to utilize the Feign client, entirely removing their dependency on REST-assured. **Note on Behavior:** The core test behavior and assertions remain completely unchanged. This is strictly a refactor of the underlying HTTP client layer. ### Review Strategy: Why the commits are split To make the review process as seamless as possible, the work has been divided into **9 logical commits** grouped by functional test area (e.g., progressive loans, accruals, repayments). Reviewing commit-by-commit is highly recommended rather than tackling the entire diff at once. This granular approach also ensures that if CI fails or issues arise later, it is much easier to isolate and track down the specific batch that introduced the regression. ### Scope **Included in this PR:** * Charge-off and post charge-off scenarios * Fraud marking mechanisms * Delinquency configurations and non-active account handling * Progressive loan workflows (disbursement, moratorium, tranches, undo disbursement) * Accrual accounting and multi-activity accruals * Loan repayment flows with comprehensive journal entry verification * Reverse-replay operations and charge-off accounting entries * Waiving charges, processing refunds, contract terminations, and pay-offs **Deferred to Future PRs (Batches 3 & 4):** * Reschedule and chargeback-intensive tests * Cumulative and advanced payment allocation schedule tests * Close of Business (COB), inline COB, external asset owners, batch APIs, and permissions ### Infrastructure Enhancements This PR builds upon the shared Feign test infrastructure from Batch 1, adding and extending several utilities to streamline testing: * **`FeignJournalEntryHelper`**: Facilitates the fetching and verification of journal entries. * **`FeignTransactionHelper`**: Provides utilities for managing repayments, reverse-replay, and charge-offs. * **`FeignGlobalConfigurationHelper`**: Manages global configuration toggles required for delinquency testing. * **`FeignCodeHelper`**: Streamlines code value lookups. * **`FeignRawHttpHelper`**: Handles edge cases requiring raw HTTP requests, safely utilizing `fineract.it.url` and tenant configurations. * **Shared Builders & Validators**: Expanded `LoanProductTemplates`, `ChargeRequestBuilders`, and `LoanTestValidators`. * **`FeignLoanTestBase`**: Enhanced with helper methods for advancing loan states, verifying journals, and managing charge-offs. ### Commit Breakdown 1. Tier 2 initial batch (12 tests + core infrastructure) 2. Progressive loan transaction tests 3. Charge accrual and closure tests 4. Contract termination flows 5. Loan repayment operations (+ journal infrastructure) 6. Charge, waive, and refund tests 7. Credit balance refunds, interest refunds, and delinquency scenarios 8. Fraud marking, accrual activity, and charge-off accounting 9. Reverse-replay, accrual reversals, and post charge-off scenarios ## Checklist Please make sure these boxes are checked before submitting your pull request - thanks! - [ ] Write the commit message as per [our guidelines](https://github.com/apache/fineract/blob/develop/CONTRIBUTING.md#pull-requests) - [ ] Acknowledge that we will not review PRs that are not passing the build _("green")_ - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers. - [ ] Create/update [unit or integration tests](https://fineract.apache.org/docs/current/#_testing) for verifying the changes made. - [ ] Follow our [coding conventions](https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions). - [ ] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with details of any API changes - [ ] [This PR must not be a "code dump"](https://cwiki.apache.org/confluence/display/FINERACT/Pull+Request+Size+Limit). Large changes can be made in a branch, with assistance. Ask for help on the [developer mailing list](https://fineract.apache.org/#contribute). Your assigned reviewer(s) will follow our [guidelines for code reviews](https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide). -- 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]
