Test Cases: Reporting & Analytics

♻️ Reconciled 2026-07-01 — export scope correction. TC-RPT-011/TC-RPT-015 below ("Export Finance Report", "Export large data set") describe a generic export button; in code the FINANCE surface that actually supports a downloadable file with real .xlsx (#228) is the invoices/payments/treasury exports (?format=xlsx on GET /api/billing/admin/invoices/export, GET /api/billing/admin/payments/export, GET /api/treasury/export) — not a standalone "Finance Dashboard export." The GET /api/billing/admin/finance/summary endpoint itself is JSON-only (dashboard data), no export. See TC-RPT-004 for the accurate export matrix.

Module: Reporting & Analytics

Backend Endpoints:

Frontend Pages: ExecutiveDashboardPage, AdminFinanceDashboardPage, AdminEventAttendanceReportPage

Prerequisites

Test Data Reference


Test Cases

TC-RPT-001: View Executive Dashboard

StepActionExpected Result
1Login as Admin User (ADMIN).Dashboard displayed.
2Navigate to Executive Dashboard.Dashboard displayed.
3Verify summary cards.Total Members, Active Events, Revenue This Month.
4Verify charts/graphs.Membership trend, Revenue trend visible.
5Verify data freshness.Recent data reflected.

TC-RPT-002: Member Statistics Report

StepActionExpected Result
1Navigate to Reports > Members.Member report displayed.
2Verify total member count.Matches actual member count.
3Verify breakdown by status.Active, Pending, Suspended counts.
4Verify breakdown by type.Regular, Associate, Student, etc.
5Verify new members this month.Count of recent joins.

TC-RPT-003: Member Growth Trend

StepActionExpected Result
1View membership growth chart.Chart displayed.
2Select date range: Last 12 months.Chart updates.
3Verify monthly data points.Each month shows member count.
4Verify trend line.Growth trend visible.

TC-RPT-004: Finance Dashboard

StepActionExpected Result
1Login as FINANCE_MANAGER.Dashboard displayed.
2Navigate to Finance Dashboard.Finance metrics displayed.
3Verify revenue summary.Total collected this month/year.
4Verify outstanding amount.Total unpaid invoices.
5Verify overdue amount.Total overdue invoices.
6Verify revenue by source.Dues, Events, Donations breakdown.

TC-RPT-005: Invoice Status Distribution

StepActionExpected Result
1View invoice status chart.Pie/bar chart displayed.
2Verify segments.Paid, Pending, Overdue, Voided.
3Verify percentages.Correct proportions.
4Click on segment.Drills down to filtered list.

TC-RPT-006: Revenue by Month Report

StepActionExpected Result
1View monthly revenue report.Report displayed.
2Select year: 2024.Data for 2024 shown.
3Verify monthly breakdown.Jan through Dec revenue.
4Verify totals.Year total matches sum.

TC-RPT-007: Event Attendance Report

StepActionExpected Result
1Navigate to Event Reports.Report displayed.
2Select event: Q4 General Assembly.Event data shown.
3Verify attendance count.Registered vs. Attended.
4Verify no-show rate.Calculated correctly.
5View attendee list.Names and check-in times.

TC-RPT-008: Event Comparison Report

StepActionExpected Result
1Select multiple events for comparison.Events selected.
2View comparison chart.Side-by-side metrics.
3Compare registration counts.Each event's count shown.
4Compare attendance rates.Percentages displayed.

TC-RPT-009: Donations Report

StepActionExpected Result
1Navigate to Donations Report.Report displayed.
2Verify total donations.Sum of all donations.
3Verify date range filter.Filter works correctly.
4View donor list.Donors with amounts.

TC-RPT-010: Export Members to CSV

StepActionExpected Result
1Access Member Report.Report displayed.
2Click "Export CSV".Download initiated.
3Open downloaded file.CSV opens correctly.
4Verify columns.Name, Email, Status, Type, Join Date.
5Verify data accuracy.Matches displayed report.

TC-RPT-011: Export Finance Report

StepActionExpected Result
1Access Finance Dashboard.Dashboard displayed.
2Click "Export".Options displayed.
3Select CSV format.Download initiated.
4Verify content.Financial data accurate.

TC-RPT-012: Date Range Filtering

StepActionExpected Result
1Access any report.Report displayed.
2Set date range: This Month.Data filtered.
3Set date range: Last Quarter.Data filtered.
4Set custom date range.Data filtered accordingly.
5Verify data matches range.Only in-range data shown.

TC-RPT-013: Real-Time Data Refresh

StepActionExpected Result
1View dashboard.Current data shown.
2In another tab, create new payment.Payment recorded.
3Refresh dashboard.New payment reflected.
4Verify totals updated.Revenue increased.

TC-RPT-014: Report with No Data

StepActionExpected Result
1Filter report to date range with no data.Filter applied.
2Verify empty state."No data for selected period" message.
3Verify charts handle empty.Charts show empty state gracefully.

TC-RPT-015: Large Data Set Performance

StepActionExpected Result
1Request report spanning full history.All data.
2Measure load time.Loads within acceptable time (< 5 seconds).
3Verify pagination if needed.Large lists paginated.
4Export large data set.Export completes without timeout.

TC-RPT-016: Permission - Finance Manager Access

StepActionExpected Result
1Login as FINANCE_MANAGER.Dashboard displayed.
2Access Finance reports.Access granted.
3Attempt Member admin reports.May have limited access.
4Attempt to access Roles report.Access denied.

TC-RPT-017: Permission - Member No Report Access

StepActionExpected Result
1Login as MEMBER.Member dashboard.
2Attempt to access admin reports.Access denied.
3Verify no report navigation.Report menus not visible.

TC-RPT-018: Dues Collection Summary

StepActionExpected Result
1Access Dues report.Report displayed.
2Verify collection rate.(Paid / Total) * 100.
3Verify outstanding by type.Regular vs Student outstanding.
4Verify year-over-year comparison.2023 vs 2024 collection.

TC-RPT-019: Payment Method Distribution

StepActionExpected Result
1View payment method report.Chart displayed.
2Verify breakdown.Bank Transfer, GCash, Cash, Online.
3Verify percentages.Correct proportions.

TC-RPT-020: Scheduled Report Generation

StepActionExpected Result
1Configure scheduled report (if available).Schedule set.
2Set frequency: Weekly.Config saved.
3Set recipients: Admin email.Email added.
4Wait for schedule.Report emailed on schedule.

API Test Cases

TC-RPT-API-001: GET /api/billing/admin/finance/summary

Expected Response: 200 OK

{

"totalRevenue": {

"thisMonth": 150000,

"thisYear": 1250000,

"allTime": 5000000

},

"outstanding": {

"total": 125000,

"overdue": 35000

},

"bySource": {

"dues": 800000,

"events": 350000,

"donations": 100000

},

"invoiceStatus": {

"paid": 450,

"pending": 25,

"overdue": 12

}

}

TC-RPT-API-002: GET /api/reporting/reports/members

Expected Response: 200 OK

{

"totalMembers": 175,

"byStatus": {

"ACTIVE": 150,

"PENDING_APPROVAL": 10,

"SUSPENDED": 5,

"DEACTIVATED": 10

},

"byType": {

"Regular Member": 100,

"Associate Member": 30,

"Student Member": 25,

"Founding Member": 15,

"Corporate Member": 5

},

"newThisMonth": 8,

"newThisYear": 45

}

TC-RPT-API-003: GET /api/reporting/reports/events/attendance?eventId=EVT-2024-002

Expected Response: 200 OK

{

"event": {

"id": "EVT-2024-002",

"name": "Annual Engineers Summit 2024"

},

"registrations": 85,

"checkedIn": 75,

"noShow": 10,

"attendanceRate": 88.2,

"attendees": [

{ "memberId": "MEM-...", "name": "Maria Cruz", "checkedInAt": "timestamp" }

]

}

TC-RPT-API-004: GET /api/billing/admin/donations/report

Request: GET /api/billing/admin/donations/report?startDate=2024-01-01&endDate=2024-12-31

Expected Response: 200 OK

{

"totalDonations": 100000,

"donationCount": 50,

"averageDonation": 2000,

"topDonors": [

{ "name": "Anonymous", "total": 25000 }

],

"byMonth": [

{ "month": "January", "amount": 15000 }

]

}