Dear community, I have created a new improvement story and asking your help to review and your opinion on the matter whether we should put more effort to enforce it!
I would like to highlight this story and this work can be a really good exercise to anybody (newcomers included) who would like to contribute to the project! We can split the work into multiple smaller steps easily! Why Fineract-client is better? Type safety comes out of box! Type safe requests, and responses! No need to "fabricate" the endpoints! We can move away from the RequestSpecification and ResponseSpecification configurations! Fineract-client is automatically generated based on the swagger configuration / request / response object! Why would it be beneficial to rewrite our integration tests? Fineract-client got tested more thoroughly! Our swagger configurations got tested more thoroughly! Better maintainability! Better readability! Less error-prone! No more struggling with Map<String, Object>-s to fabricate request objects and trying to fetch out fields from response Object / Map... No more GSON conversion back and forth No more "is this json string contains XYZ?" It was mostly done to test exception messages... No more N+1 method with slightly different parameter list Summary of the story: `Fineract-client` was introduced as part of https://issues.apache.org/jira/browse/FINERACT-1189 and some integration tests were using it (https://issues.apache.org/jira/browse/FINERACT-1209) but unfortunately many were not used and new integration tests got implemented but still not using the `fineract-client`! An ideal flow would be: step: Marking all the methods as deprecated in the Helper classes which were using RestAssured for communicating with the backend! step: Inform the Fineract-Dev mail list to not use "RestAssured based" solutions for any of the newly created integration tests! step: Ask the community to start using the `fineract-client` based communication for all the newly created integration tests! Check in the helper classes whether for the required action there is a "Fineract-client based" implementation If yes, please use that! If no, please implement it! If it is broken, example: swagger request or response is not complete -> there is a missing field or the data type is incorrect -> Please fix it! step: Ask the community and the newcomers to start removing the methods that were marked as deprecated and rewrite them to use `fineract-client` instead! This means the integration tests that were using the deprecated methods must also be changed! Link to the story: https://issues.apache.org/jira/browse/FINERACT-2165 I took the liberty to do the very 1st step, opened a PR where all the RestAssured solutions were marked as deprecated: https://github.com/apache/fineract/pull/4247 Regards, Adam Saghy