Personal Finance Manager – API Test Suite
This repository contains the automated test scripts for the Personal Finance Manager REST API.
It ensures the reliability, accuracy, and consistency of backend services by validating endpoints and workflows.
⚠️ Note: This is a work in progress and part of the larger Personal Finance Manager ecosystem.
It serves as the dedicated repository for testing and quality assurance.
Overview
The test suite is designed to:
- ✅ Verify API endpoints for income, expenses, budgets, and savings
- 🔄 Check CRUD operations and data consistency
- 🛡️ Validate security and authentication mechanisms
- 📊 Provide regression testing to support ongoing development
Structure
- Unit Tests – Validate individual components and services
- Integration Tests – Ensure proper communication between modules
- Regression Tests – Catch issues introduced by new changes
- Test Data – Sample inputs and expected outputs
Sample Execution
./test_endpoint.sh
Step 1: Authenticate
| ENDPOINT |
STATUS |
STATUS MSG |
| /pfm/authenticate |
200 |
|
Debug - Full Auth Response:
{“responseMessage”:”Success”,”responseStatus”:200,”timestamp”:”2026-04-02 12:59:23.548”,”data”:{“token”:”eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJqZWZmIiwiaWF0IjoxNzc1MTM0NzYzLCJleHAiOjE3NzUxMzU1ODd9.WmpiUtDv-vxeuWxmFfrl7jX8KZhkNgUImSzw9S2UCNI”,”expiresIn”:”Thu Apr 02 13:13:07 GMT 2026”,”type”:”Bearer”}}
Debug - Extracted TOKEN: ‘eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJqZWZmIiwiaWF0IjoxNzc1MTM0NzYzLCJleHAiOjE3NzUxMzU1ODd9.WmpiUtDv-vxeuWxmFfrl7jX8KZhkNgUImSzw9S2UCNI’
Debug - TOKEN length: 129
Token obtained: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJqZWZmIiwiaWF0IjoxN…
Step 2: AllocationMapping Endpoints
| ENDPOINT |
STATUS |
STATUS MSG |
| /pfm/get/allocation.mapping |
HTTP_STATUS:200 |
| /pfm/get/allocation.mapping?page=0&size=3&sortBy=allocId |
HTTP_STATUS:200 |
| /pfm/get/allocation.mapping/allocId/1 |
HTTP_STATUS:200 |
| /pfm/search/allocation.mapping?page=0&size=10&sortBy=allocId |
HTTP_STATUS:200 |
| /pfm/allocation.mapping/update/17 |
HTTP_STATUS:200 |
| /pfm/allocation.mapping/delete/17 |
HTTP_STATUS:200 |
Step 3: InvestmentAndSavingsDay Endpoints
| ENDPOINT |
STATUS |
STATUS MSG |
| /pfm/get/investmentsandsavingsday |
HTTP_STATUS:200 |
| /pfm/get/investmentsandsavingsday?page=0&size=3&sortBy=allocId |
HTTP_STATUS:200 |
| /pfm/get/investmentsandsavingsday/Id/1 |
HTTP_STATUS:200 |
| /pfm/search/investmentsandsavingsday/allocId/1?page=0&size=10&sortBy=allocId |
HTTP_STATUS:200 |
| /pfm/investmentsandsavingsday/update/42 |
HTTP_STATUS:200 |
| /pfm/investmentsandsavingsday/delete/42 |
HTTP_STATUS:200 |
Step 4: MonthlyGrowth Endpoints
| ENDPOINT |
STATUS |
STATUS MSG |
| /pfm/get/monthlygrowth |
HTTP_STATUS:200 |
| /pfm/get/monthlygrowth?page=0&size=3&sortBy=allocId |
HTTP_STATUS:200 |
| /pfm/get/monthlygrowth/id/1 |
HTTP_STATUS:200 |
| /pfm/search/monthlygrowth/allocId/1?page=0&size=10&sortBy=allocId |
HTTP_STATUS:200 |
| /pfm/monthlygrowth/update/18 |
HTTP_STATUS:200 |
| /pfm/monthlygrowth/delete/18 |
HTTP_STATUS:200 |
Step 5: Networth Endpoints
| ENDPOINT |
STATUS |
STATUS MSG |
| /pfm/get/networth |
HTTP_STATUS:200 |
| /pfm/get/networth?page=0&size=3&sortBy=allocId |
HTTP_STATUS:200 |
| /pfm/get/networth/id/1 |
HTTP_STATUS:200 |
| /pfm/search/networth/allocId/1?page=0&size=10&sortBy=allocId |
HTTP_STATUS:200 |
| /pfm/networth/update/16 |
HTTP_STATUS:200 |
| /pfm/networth/delete/16 |
HTTP_STATUS:200 |
Step 6: SalaryTracker Endpoints
| ENDPOINT |
STATUS |
STATUS MSG |
| /pfm/get/salarytracker |
HTTP_STATUS:200 |
| /pfm/get/salarytracker?page=0&size=3&sortBy=salaryId |
HTTP_STATUS:200 |
| /pfm/get/salarytracker/id/1 |
HTTP_STATUS:200 |
| /pfm/salarytracker/update/16 |
HTTP_STATUS:200 |
| /pfm/salarytracker/delete/16 |
HTTP_STATUS:200 |
Step 7: SalaryExpenseTracker Endpoints
| ENDPOINT |
STATUS |
STATUS MSG |
| /pfm/get/salaryexpensetracker |
HTTP_STATUS:200 |
| /pfm/get/salaryexpensetracker?page=0&size=3&sortBy=id |
HTTP_STATUS:200 |
| /pfm/get/salaryexpensetracker/id/1 |
HTTP_STATUS:200 |
| /pfm/search/salaryexpensetracker/salaryId/1?page=0&size=10&sortBy=id |
HTTP_STATUS:200 |
| /pfm/salaryexpensetracker/update/16 |
HTTP_STATUS:200 |
| /pfm/salaryexpensetracker/delete/16 |
HTTP_STATUS:200 |
Step 8: WantList Endpoints
| ENDPOINT |
STATUS |
STATUS MSG |
| /pfm/get/wantlist |
HTTP_STATUS:200 |
| /pfm/get/wantlist?page=0&size=3&sortBy=id |
HTTP_STATUS:200 |
| /pfm/get/wantlist/id/1 |
HTTP_STATUS:200 |
| /pfm/wantlist/update/16 |
HTTP_STATUS:200 |
| /pfm/wantlist/delete/16 |
HTTP_STATUS:200 |
Step 9: YearlyGrowth Endpoints
| ENDPOINT |
STATUS |
STATUS MSG |
| /pfm/get/yearlygrowth |
HTTP_STATUS:200 |
| /pfm/get/yearlygrowth?page=0&size=3&sortBy=id |
HTTP_STATUS:200 |
| /pfm/get/yearlygrowth/id/1 |
HTTP_STATUS:200 |
| /pfm/search/yearlygrowth/allocId/1?page=0&size=5&sortBy=id |
HTTP_STATUS:200 |
| /pfm/yearlygrowth/update/19 |
HTTP_STATUS:200 |
| /pfm/yearlygrowth/delete/19 |
HTTP_STATUS:200 |
Step 10: CCDetails Endpoints
| ENDPOINT |
STATUS |
STATUS MSG |
| /pfm/get/cc.details |
HTTP_STATUS:200 |
| /pfm/get/cc.details?page=0&size=3&sortBy=ccId |
HTTP_STATUS:200 |
| /pfm/get/cc.details/ccId/1 |
HTTP_STATUS:200 |
| /pfm/cc.details/update/16 |
HTTP_STATUS:200 |
| /pfm/cc.details/delete/16 |
HTTP_STATUS:200 |
Step 11: CCConnected API Endpoints
| ENDPOINT |
STATUS |
STATUS MSG |
| /pfm/get/cc.connectedApp |
HTTP_STATUS:200 |
| /pfm/get/cc.connectedApp?page=0&size=3&sortBy=id |
HTTP_STATUS:200 |
| /pfm/get/cc.connectedApp/id/1 |
HTTP_STATUS:200 |
| /pfm/search/cc.connectedApp/ccId/1?page=0&size=5&sortBy=ccId |
HTTP_STATUS:200 |
| /pfm/cc.connectedApp/update/11 |
HTTP_STATUS:200 |
| /pfm/cc.connectedApp/delete/11 |
HTTP_STATUS:200 |
Step 12: CCRecordTracker API Endpoints
| ENDPOINT |
STATUS |
STATUS MSG |
| /pfm/get/cc.recordTracker |
HTTP_STATUS:200 |
| /pfm/get/cc.recordTracker?page=0&size=3&sortBy=ccRecId |
HTTP_STATUS:200 |
| /pfm/get/cc.recordTracker/ccRecId/1 |
HTTP_STATUS:200 |
| /pfm/search/cc.record.tracker/ccId/1?page=0&size=5&sortBy=ccRecId |
HTTP_STATUS:200 |
| /pfm/cc.recordTracker/update/16 |
HTTP_STATUS:200 |
| /pfm/cc.recordTracker/delete/16 |
HTTP_STATUS:200 |
Step 13: CCRecordExpenseTracker API Endpoints
| ENDPOINT |
STATUS |
STATUS MSG |
| /pfm/get/cc.record.expense |
HTTP_STATUS:200 |
| /pfm/get/cc.record.expense?page=0&size=3&sortBy=ccRecId |
HTTP_STATUS:200 |
| /pfm/get/cc.record.expense/ccExpId/1 |
HTTP_STATUS:200 |
| /pfm/search/cc.record.expense/ccRecId/1?page=0&size=5&sortBy=ccRecId |
HTTP_STATUS:200 |
| /pfm/cc.record.expense/update/16 |
HTTP_STATUS:200 |
| /pfm/cc.record.expense/delete/16 |
HTTP_STATUS:200 |
All tests completed!