[
https://issues.apache.org/jira/browse/FINERACT-2858?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Krishna Mewara updated FINERACT-2858:
-------------------------------------
Labels: CI beginner-friendly check feign-migration (was: beginner-friendly
check feign-migration)
> Block new REST Assured code in all integration tests with a shrinking baseline
> ------------------------------------------------------------------------------
>
> Key: FINERACT-2858
> URL: https://issues.apache.org/jira/browse/FINERACT-2858
> Project: Apache Fineract
> Issue Type: Improvement
> Components: Test
> Affects Versions: 1.15.0
> Reporter: Krishna Mewara
> Assignee: Krishna Mewara
> Priority: Trivial
> Labels: CI, beginner-friendly, check, feign-migration
>
> h3. Background
> FINERACT-2781 (#6324) added a Checkstyle rule that blocks REST Assured
> imports. It only covers the shared Feign test code: the {{client/feign}}
> package, {{FeignIntegrationTest}} and {{FineractFeignClientHelper}}. That
> scope was chosen on purpose. When the rule merged, 158 files still used REST
> Assured, many of them next to migrated tests in the same package, and
> Checkstyle selects files by path, not by base class. The Feign testing
> chapter records this: "Migrated tests outside those locations are not
> covered. The scope widens as the migration progresses." This ticket is that
> next step.
> h3. Why now
> - {{CenterIntegrationTest}} was fully migrated in #6194. Five days later,
> commit b509b85d10 added 4 new REST Assured tests to it. Nothing stopped it.
> - Since 2026-06-01, 21 commits by about 12 contributors added REST Assured
> code to {{integration-tests}}. About 10 of them created brand-new REST
> Assured test files. At least 4 of those had to be migrated again later
> ({{WorkingCapitalLoanOriginatorsTest}}, {{ClientChargeRoundingTest}},
> {{ShareAccountChargeRoundingTest}}, {{AccountTransferOverdraftTest}}).
> Each of these adds work to the migration, and reviewers can only catch them
> by hand.
> h3. Change
> Apply the existing {{FeignNoRestAssured}} rule to all code.
> Add a baseline suppressions file listing the 115 files that use REST Assured
> today (113 in {{integration-tests}}, 1 each in {{oauth2-tests}} and
> {{twofactor-tests}}).
> Migrate the 4 {{orderBy}} tests in {{CenterIntegrationTest}} to the Feign
> client, so that file stays off the list.
> Update the Feign testing chapter.
> After this:
> - A new file importing REST Assured fails CI.
> - REST Assured added back into a migrated file fails CI.
> - Files on the list build as before, so open PRs are not affected.
> Each migration PR removes its files from the baseline. The list only shrinks.
> h3. End state
> The migration closeout removes the {{io.rest-assured}} dependency from the
> three modules. From then on, any REST Assured import fails to compile, so the
> rule and the baseline file are deleted in that same PR.
> h3. Known limits
> - The check works per file, so new REST Assured code inside a file still on
> the list is not caught. Reviewers watch for that until the file is migrated.
> - It reads imports only, same as the current rule.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)