pfm-test

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:

Structure

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!