Step-by-Step Guide — Follow each step exactly as written. All values are provided — do not improvise.

TC-BIL-002: Invoice Viewing & Details

Module: Billing & Invoicing - Invoice Viewing

Prerequisite: At least one invoice exists (created in TC-BIL-001 or via dues generation).

URLs for this test:
Frontend: https://stg-rcme.membervu.com
Backend API: https://stg-api.membervu.com
MailHog: https://stg-webmail.membervu.com
Membership Types & Dues Reference:
Regular Member: PHP 15,000/year
Associate Member: PHP 10,000/year
Student Member: PHP 5,000/year

Test A: Admin Invoice List View

Purpose: Verify admin can see the full invoice list with correct columns, filters, and search.

StepAction (EXACT clicks/typing)Expected Result (EXACT text/behavior)Test Value
1Open browser, go to:
https://stg-rcme.membervu.com/login
Login page loads.https://stg-rcme.membervu.com/login
2Enter email: admin@rcme.membervu.com
Enter password: Admin123!
Click "Sign In".
Login succeeds. Admin dashboard displayed.Email: admin@rcme.membervu.com
Pass: Admin123!
3In the left sidebar, click "Admin" > "Billing" > "Invoices".Invoice list page loads with a data table.-
4Examine the table columns.Table shows columns including:
- Invoice # (e.g., INV-2026-XXXX)
- Member (name or email)
- Amount (PHP formatted)
- Status (ISSUED, PAID, VOIDED, OVERDUE)
- Due Date
- Created (date)
-
5Look for a Status filter dropdown or tabs. Select "ISSUED".Table filters to show only invoices with ISSUED status. Other statuses are hidden.Filter: ISSUED
6Change the status filter to "PAID".Table shows only PAID invoices (if any exist). If none exist, table shows empty state message.Filter: PAID
7Change the status filter to "VOIDED".Table shows only VOIDED invoices (if any exist).Filter: VOIDED
8Change the status filter to "OVERDUE".Table shows only OVERDUE invoices (if any exist).Filter: OVERDUE
9Clear the status filter (select "All" or clear). Look for a date range filter. Set start date to 30 days ago and end date to today.Table filters to show only invoices created within the selected date range.Date range: last 30 days
10Look for a search box. Type: Maria CruzTable filters to show only invoices for Maria Cruz (testmember). Other members' invoices are hidden.Search: Maria Cruz
11Clear the search. Type: testmember@rcmeSearch by email also works. Shows Maria Cruz's invoices.Search: testmember@rcme
SKIP — If date range filter or search by email is not implemented, note it in your test report and continue to the next test.
PASS if: Invoice list displays correct columns, status filter works for at least ISSUED and PAID, and search by member name returns correct results.

Test B: Admin Invoice Detail View

Purpose: Verify clicking an invoice shows full detail page with line items, payment history, and notes.

StepAction (EXACT clicks/typing)Expected Result (EXACT text/behavior)Test Value
1On the invoice list, find the invoice created in TC-BIL-001 Test A (PHP 15,500.00 for Maria Cruz). Click on it.Invoice detail page loads.Invoice: PHP 15,500.00
2Verify the header section of the detail page.Shows:
- Invoice number (INV-2026-XXXX)
- Status badge: ISSUED
- Member name: Maria Cruz
- Member email: testmember@rcme.membervu.com
- Created date
- Due date (30 days from creation)
-
3Verify the line items section.Shows 2 line items:
1. Annual Dues 2026 — PHP 15,000.00
2. Late Payment Fee — PHP 500.00
Total: PHP 15,500.00
Total: PHP 15,500.00
4Look for a Payment History section on the detail page.Payment history section exists but shows no payments (invoice is unpaid). May show "No payments recorded" or empty table.-
5Look for a Notes section on the detail page.Internal note visible: Test invoice - Regular Member annual dues (from TC-BIL-001 Test A).Note: Test invoice - Regular Member annual dues
6Verify action buttons on the detail page.Available actions for ISSUED invoice may include:
- Edit Invoice
- Void Invoice
- Send Reminder
- Record Payment
-
PASS if: Invoice detail shows correct header, 2 line items with correct amounts, total PHP 15,500.00, payment history section, and notes.

Test C: Member Invoice View (Own Invoices Only)

Purpose: Verify a member can see only their own invoices and view details with a Pay Now option.

StepAction (EXACT clicks/typing)Expected Result (EXACT text/behavior)Test Value
1Log out of the admin account. Go to:
https://stg-rcme.membervu.com/login
Login as: testmember@rcme.membervu.com / Member123!
Login succeeds. Member dashboard displayed.Email: testmember@rcme.membervu.com
Pass: Member123!
2In the sidebar or main navigation, look for "My Invoices", "Billing", or "My Account" > "Invoices". Click it.Member's invoice list page loads showing ONLY invoices assigned to Maria Cruz.-
3Verify the invoices displayed.Only invoices for testmember@rcme.membervu.com are shown. Invoices for other members are NOT visible. At least the invoices from TC-BIL-001 should appear.-
4Check invoice amounts displayed.Amounts match the invoices created in TC-BIL-001:
- PHP 15,500.00 (Annual Dues + Late Fee)
- PHP 18,500.00 (Multi-line item invoice)
-
5Click on the PHP 15,500.00 invoice to view details.Invoice detail page loads showing:
- Line items with descriptions and amounts
- Due date
- Status (ISSUED)
- A "Pay Now" button (if payment is enabled for member self-service)
-
6On the invoice detail page, verify the member does NOT see admin-only fields.Internal/admin notes are NOT visible to the member. No "Void Invoice" button. No "Edit Invoice" button.-
7If other members' invoices exist, try to access one by modifying the URL with a different invoice ID.
Example: change the invoice ID in the URL to a random UUID.
Access denied, 404 Not Found, or redirect. The member CANNOT view another member's invoice.-
PASS if: Member sees only their own invoices, can view detail with line items and "Pay Now" button, cannot see admin notes, and cannot access other members' invoices.

Test D: Guest View - No Invoice Access

Purpose: Verify a guest user cannot see any invoices section.

StepAction (EXACT clicks/typing)Expected Result (EXACT text/behavior)Test Value
1Log out. Go to:
https://stg-rcme.membervu.com/login
Login as: guest@demo.membervu.com / Guest123!
Login succeeds. Guest dashboard displayed.Email: guest@demo.membervu.com
Pass: Guest123!
2Look at the sidebar and main navigation for any "Invoices", "Billing", or "My Invoices" link.No invoices or billing section is visible in navigation for guest role.-
3Try navigating directly to:
https://stg-rcme.membervu.com/billing
Access denied, redirect to dashboard, or page not found. Guest cannot access billing pages./rcme/billing
4Try navigating directly to:
https://stg-rcme.membervu.com/invoices
Access denied or redirect. No invoice data displayed./rcme/invoices
PASS if: Guest user has no access to any invoices or billing section.

Test E: Treasurer Invoice View

Purpose: Verify the Treasurer role has full read access to all invoices.

StepAction (EXACT clicks/typing)Expected Result (EXACT text/behavior)Test Value
1Log out. Go to:
https://stg-rcme.membervu.com/login
Login as: treasurer@demo.membervu.com / Treasurer123!
Login succeeds. Dashboard displayed with admin access.Email: treasurer@demo.membervu.com
Pass: Treasurer123!
2Navigate to "Admin" > "Billing" > "Invoices".Invoice list page loads. Treasurer can see ALL invoices across all members.-
3Verify invoices for different membership types are visible (if they exist):
- Regular Member invoices (PHP 15,000 dues)
- Associate Member invoices (PHP 10,000 dues)
- Student Member invoices (PHP 5,000 dues)
Treasurer sees invoices for all membership types. Amounts correspond to membership dues.Regular: PHP 15,000
Associate: PHP 10,000
Student: PHP 5,000
4Click on an invoice to view details.Full detail page visible including line items, payment history, notes, and admin actions.-
PASS if: Treasurer has full admin-level read access to all invoices with complete details.

CLEANUP

No cleanup required for this test case.
This test is read-only and does not create or modify any data. Invoices from TC-BIL-001 remain for use in subsequent tests.