Skip to content

FINERACT-2781: Feign integration test guardrails - #6324

Open
DeathGun44 wants to merge 3 commits into
apache:developfrom
DeathGun44:FINERACT-2781/feign-integration-test-guardrails
Open

FINERACT-2781: Feign integration test guardrails#6324
DeathGun44 wants to merge 3 commits into
apache:developfrom
DeathGun44:FINERACT-2781/feign-integration-test-guardrails

Conversation

@DeathGun44

Copy link
Copy Markdown
Contributor

Description

Describe the changes made and why they were made. (Ignore if these details are present on the associated Apache Fineract JIRA ticket.)

Checklist

Please make sure these boxes are checked before submitting your pull request - thanks!

  • Write the commit message as per our guidelines
  • 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 for verifying the changes made.
  • Follow our 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". Large changes can be made in a branch, with assistance. Ask for help on the developer mailing list.
  • If merging this PR resolves a JIRA issue, I will mark that issue as resolved and set "Fix Version/s" appropriately.

Your assigned reviewer(s) will follow our guidelines for code reviews.

@Aman-Mittal Aman-Mittal left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

License concerns

Comment thread config/checkstyle/checkstyle.xml Outdated
@Aman-Mittal
Aman-Mittal dismissed their stale review August 24, 2026 16:03

Need to check more in this

@DeathGun44
DeathGun44 force-pushed the FINERACT-2781/feign-integration-test-guardrails branch from a1bd542 to b2465ec Compare August 24, 2026 18:55
@budaidev

Copy link
Copy Markdown
Contributor

Fix the current checkstyle violation before merge

@adamsaghy

Copy link
Copy Markdown
Contributor

@DeathGun44 Please review the failing checks and advise on them

@DeathGun44
DeathGun44 force-pushed the FINERACT-2781/feign-integration-test-guardrails branch from b2465ec to f30b991 Compare August 26, 2026 18:15
@DeathGun44

DeathGun44 commented Aug 26, 2026

Copy link
Copy Markdown
Contributor Author

The violation is real, but the fix is not in this PR - it is in #6321.
The rule flags five io.restassured imports in FeignLoanHelper.java. that pr deletes exactly those five. I checked both sides with the standalone Checkstyle CLI.

So this check goes green on its own once the other one merges, and the merge order is #6321 then #6324. I have deliberately not suppressed the file or narrowed the rule to get a green tick here, since that would switch off the guardrail this PR exists to add.

@adamsaghy

Copy link
Copy Markdown
Contributor

@DeathGun44 Please rebase

Adds a Feign Integration Tests chapter covering how a test reaches the
generated client, how to assert failures against it, and what to do when a
generated model is missing a field.

The conventions are drawn from review feedback on the migration pull
requests and are given stable identifiers (IT-01 to IT-20) so that a review
comment can cite a rule instead of restating it.
The shared Feign machinery is inherited by every migrated test, so a REST
Assured call reintroduced there is inherited by all of them.

Adds an IllegalImport check narrowed by a SuppressionSingleFilter carrying
the same id, so the check applies to the client/feign package tree, the
FeignIntegrationTest root base class one directory above it, and the
FineractFeignClientHelper client factory in common, and nowhere else. Both
are stock Checkstyle modules, which avoids adding another dependency on the
LGPL sevntu-checks extension. The check runs as part of checkstyleTest,
which build-quality-checks.yml already executes on every pull request, so no
new tooling or workflow is involved.

The check reads imports only, so a fully qualified reference or a var that
never names a REST Assured type still gets through. Neither occurs today and
the chapter records the limitation.
The chapter still taught the REST Assured setup block as the way to start a
new test, and documented several methods and commands that do not exist.

- Point new tests at FeignLoanTestBase, which 149 test classes now extend,
  and keep the REST Assured pattern only as the legacy path. The Best
  Practices list said the opposite and has been brought into line.
- Drop testCapitalizedIncome, testDownPayment, testAdvancedPaymentAllocation
  and createMultiDisbursementProduct, none of which exist on either base
  class, and correct the loan product template name.
- Note that the create* methods return a PostLoanProductsRequest rather than
  a product identifier.
- Remove the --exclude, -Xmx4g and -Dtest.timeout invocations: the test task
  accepts none of them. Size the test JVM with maxHeapSize, which is the
  setting that actually applies to the forked process.
- Document -PcargoDisabled, which is required to run against an instance
  started outside the build.
- Use PostgreSQL in the troubleshooting queries, per FSIP-9, correct the
  m_appuser column name, and use createPGDB rather than the MariaDB task.
- Stop the instance before dropping its databases, which PostgreSQL will
  otherwise refuse.
@DeathGun44
DeathGun44 force-pushed the FINERACT-2781/feign-integration-test-guardrails branch from f30b991 to d7b8e13 Compare August 28, 2026 16:43
@DeathGun44

Copy link
Copy Markdown
Contributor Author

@adamsaghy Done!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants