Hi everyone, Just wanted to share a quick progress update on my GSoC project. I’m currently working on migrating our integration test infrastructure from RestAssured to the type-safe Feign client. You can track the main progress here: FINERACT-2609 <https://issues.apache.org/jira/browse/FINERACT-2609>.
*Why we're doing this* Right now, the majority of our integration tests rely on RestAssured, which means we're dealing with untyped HTTP and raw JSON strings. If an API field changes, the tests still compile perfectly fine but fail hours later in CI - or worse, they pass using outdated data. By switching to the generated Feign client, we get compile-time safety. If a field gets renamed, the build breaks immediately locally. *Long-term impact* Once this migration is complete, the test suite becomes a first-class consumer of our own API. Any breaking API change will fail the build before it reaches CI, which means faster feedback for contributors and fewer surprise failures on unrelated PRs. It also means the Swagger spec stays honest — the spec gaps I've been fixing along the way show that without something actually consuming the generated client, the spec drifts silently from what the server does. On the contributor experience side, writing a new integration test becomes much simpler: extend a base class, call typed methods, no more copying JSON templates from other tests and hoping the fields are still correct. Eventually this also opens the door to retiring RestAssured as a test dependency entirely. *The approach* To keep things smooth, I'm taking an incremental approach. The new Feign helpers are being added right alongside the existing RestAssured ones. Since both clients share the same model classes, we can migrate tests batch by batch without breaking anyone's current workflow or causing merge conflicts for other PRs. *Merged so far (8 PRs in develop)* - *Core helpers:* Added Feign utilities for Savings (#5907 <https://www.google.com/search?q=https://github.com/apache/fineract/pull/5907>), Client (#5954 <https://www.google.com/search?q=https://github.com/apache/fineract/pull/5954>), Charges & Delinquency (#5978 <https://www.google.com/search?q=https://github.com/apache/fineract/pull/5978>), and Loans (#5997 <https://www.google.com/search?q=https://github.com/apache/fineract/pull/5997> ). - *Initial migrations:* Moved the first 5 loan tests over to FeignLoanTestBase (#6005 <https://www.google.com/search?q=https://github.com/apache/fineract/pull/6005> ). - *Spec fixes:* Merged several Swagger fixes (#5934 <https://www.google.com/search?q=https://github.com/apache/fineract/pull/5934>, #5955 <https://www.google.com/search?q=https://github.com/apache/fineract/pull/5955>, #5978 <https://www.google.com/search?q=https://github.com/apache/fineract/pull/5978>) to correct fields that the generated client was silently dropping. *Currently in review* PR #6050 <https://www.google.com/search?q=https://github.com/apache/fineract/pull/6050> is up next. This is the second batch of loan test migrations (~34 tests covering charge-off, fraud, delinquency, progressive lending, etc.). I split the commits by test area so it's much easier to review and catch regressions. *What's next* - Batches 3 and 4 to completely phase out BaseLoanIntegrationTest. - Building out helpers for Groups, Centers, and Fixed/Recurring Deposits. - Deprecating the old RestAssured utilities in Utils.java. - Writing a short migration guide for future contributors. All feedback is welcome! Best, Krishna Mewara GSoC 2026 Contributor Apache Fineract
